ember-sortable 3.0.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,24 @@ Please upgrade or ask whatever dependency you are using to upgrade.
3
3
  https://github.com/highlightjs/highlight.js/issues/2877
4
4
 
5
5
 
6
+
7
+ ## v4.0.0 (2022-05-16)
8
+
9
+ #### :boom: Breaking Change
10
+ * [#479](https://github.com/adopted-ember-addons/ember-sortable/pull/479) Drop node 12 and Ember 3.20 support ([@BnitoBzh](https://github.com/BnitoBzh))
11
+ * [#476](https://github.com/adopted-ember-addons/ember-sortable/pull/476) Update ember-modifier to 3.2.0 (drop Ember < 3.24) ([@BnitoBzh](https://github.com/BnitoBzh))
12
+
13
+ #### :rocket: Enhancement
14
+ * [#477](https://github.com/adopted-ember-addons/ember-sortable/pull/477) perf: avoid creating callbacks for the destructor ([@BnitoBzh](https://github.com/BnitoBzh))
15
+
16
+ #### :house: Internal
17
+ * [#478](https://github.com/adopted-ember-addons/ember-sortable/pull/478) chore: update release process to match adopted standards ([@knownasilya](https://github.com/knownasilya))
18
+
19
+ #### Committers: 3
20
+ - Ewan McDougall ([@mrloop](https://github.com/mrloop))
21
+ - Ilya Radchenko ([@knownasilya](https://github.com/knownasilya))
22
+ - [@BnitoBzh](https://github.com/BnitoBzh)
23
+
6
24
  ## v3.0.1 (2022-03-16)
7
25
 
8
26
  #### :bug: Bug Fix
package/README.md CHANGED
@@ -25,6 +25,8 @@ For modifiers, please read this [migration guide](/MIGRATION_GUIDE_MODIFIERS.md)
25
25
 
26
26
  ## Requirements
27
27
 
28
+ In version 3.0.0+, Node.js v12 or above And Ember.js v3.24 or above
29
+
28
30
  In version 2.0.0+, our `closest` polyfill seems to break some app's `production` build. To mitigate this, the `closest` polyfill will only enabled if it doesn't break the `production` build (if the `polyfill` file is recognized by the build). Affected apps will need to supply their own [closest](https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill) polyfill to ensure compatibility with IE. This issue is tracked [here](https://github.com/adopted-ember-addons/ember-sortable/issues/333).
29
31
 
30
32
  We require the `ember-decorators-polyfill` to be installed if you are using this addon with versions of Ember < 3.10.0.
@@ -42,16 +44,18 @@ $ ember install ember-sortable
42
44
  ## Usage
43
45
 
44
46
  ```hbs
45
- {{! app/templates/my-route.hbs }}
47
+ {{! app/components/my-list/template.hbs }}
46
48
 
47
49
  <ol {{sortable-group onChange=this.reorderItems}}>
48
- {{#each @model.items as |modelItem|}}
49
- <li {{sortable-item model=modelItem}}>
50
- {{modelItem.name}}
50
+ {{#each this.items as |item|}}
51
+ <li {{sortable-item model=item}}>
52
+ {{item}}
51
53
  <span class='handle' {{sortable-handle}}>&varr;</span>
52
54
  </li>
53
55
  {{/each}}
54
56
  </ol>
57
+
58
+ <p>The last dragged item was: {{this.lastDragged}}</p>
55
59
  ```
56
60
 
57
61
  The `onChange` action is called with two arguments:
@@ -60,13 +64,16 @@ The `onChange` action is called with two arguments:
60
64
  - The model you just dragged
61
65
 
62
66
  ```js
63
- // app/routes/my-route.js
67
+ // app/components/my-list/component.js
68
+
69
+ export default class MyList extends Component {
70
+ @tracked lastDragged;
71
+ @tracked items = ['Coal Ila', 'Askaig', 'Bowmore'];
64
72
 
65
- export default class MyRoute extends Route {
66
73
  @action
67
74
  reorderItems(itemModels, draggedModel) {
68
- this.currentModel.items, itemModels);
69
- this.currentModel.justDragged, draggedModel);
75
+ this.items = itemModels;
76
+ this.lastDragged = draggedModel;
70
77
  }
71
78
  }
72
79
  ```
@@ -74,12 +81,12 @@ export default class MyRoute extends Route {
74
81
  The modifier version does not support `groupModel`, use the currying of `action` or the `fn` helper.
75
82
 
76
83
  ```hbs
77
- {{! app/templates/my-route.hbs }}
84
+ {{! app/components/my-list/template.hbs }}
78
85
 
79
86
  <ol {{sortable-group onChange=(fn this.reorderItems model)}}>
80
- {{#each @model.items as |modelItem|}}
81
- <li {{sortable-item model=modelItem}}>
82
- {{modelItem.name}}
87
+ {{#each this.items as |item|}}
88
+ <li {{sortable-item model=item}}>
89
+ {{item}}
83
90
  <span class='handle' {{sortable-handle}}>&varr;</span>
84
91
  </li>
85
92
  {{/each}}
@@ -187,30 +194,25 @@ When the action is called, the item's model will be provided as the only
187
194
  argument.
188
195
 
189
196
  ```js
190
- // app/routes/my-route.js
197
+ // app/components/my-list/component.js
191
198
 
192
199
  export default class MyRoute extends Route {
193
200
  @action
194
201
  dragStarted(item) {
195
- console.log(`Item started dragging: ${item.get('name')}`);
202
+ console.log(`Item started dragging: ${item}`);
196
203
  },
197
204
  @action
198
205
  dragStopped(item) {
199
- console.log(`Item stopped dragging: ${item.get('name')}`);
206
+ console.log(`Item stopped dragging: ${item}`);
200
207
  }
201
208
  }
202
209
  ```
203
210
 
204
211
  ```hbs
205
- <li {{sortable-item
206
- onDragStart=this.dragStarted
207
- onDragStop=this.dragStopped
208
- model=modelItem
209
- }}
210
- >
211
- {{modelItem.name}}
212
- <span class="handle" {{sortable-handle}}>&varr;</span>
213
- </li>
212
+ <li {{sortable-item onDragStart=this.dragStarted onDragStop=this.dragStopped model=item}}>
213
+ {{item}}
214
+ <span class='handle' {{sortable-handle}}>&varr;</span>
215
+ </li>
214
216
  ```
215
217
 
216
218
  ### Multiple Ember-Sortables renders simultaneously
@@ -221,9 +223,9 @@ Both the `{{sortable-group}}` and `{{sortable-item}}` take an additional argumen
221
223
 
222
224
  ```hbs
223
225
  <ol {{sortable-group groupName='products' onChange=this.reorderItems}}>
224
- {{#each @model.items as |modelItem|}}
225
- <li {{sortable-item groupName='products' model=modelItem}}>
226
- {{modelItem.name}}
226
+ {{#each this.items as |item|}}
227
+ <li {{sortable-item groupName='products' model=item}}>
228
+ {{item}}
227
229
  <span class='handle' {{sortable-handle}}>&varr;</span>
228
230
  </li>
229
231
  {{/each}}
@@ -235,9 +237,9 @@ Ensure that the same name is passed to both the group and the items, this would
235
237
  ```hbs
236
238
  {{#let 'products' as |myGroupName|}}
237
239
  <ol {{sortable-group groupName=myGroupName onChange=this.reorderItems}}>
238
- {{#each @model.items as |modelItem|}}
239
- <li {{sortable-item groupName=myGroupName model=modelItem}}>
240
- {{modelItem.name}}
240
+ {{#each this.items as |item|}}
241
+ <li {{sortable-item groupName=myGroupName model=item}}>
242
+ {{item}}
241
243
  <span class='handle' {{sortable-handle}}>&varr;</span>
242
244
  </li>
243
245
  {{/each}}
package/RELEASE.md ADDED
@@ -0,0 +1,60 @@
1
+ # Release Process
2
+
3
+ Releases are mostly automated using
4
+ [release-it](https://github.com/release-it/release-it/) and
5
+ [lerna-changelog](https://github.com/lerna/lerna-changelog/).
6
+
7
+ ## Preparation
8
+
9
+ Since the majority of the actual release process is automated, the primary
10
+ remaining task prior to releasing is confirming that all pull requests that
11
+ have been merged since the last release have been labeled with the appropriate
12
+ `lerna-changelog` labels and the titles have been updated to ensure they
13
+ represent something that would make sense to our users. Some great information
14
+ on why this is important can be found at
15
+ [keepachangelog.com](https://keepachangelog.com/en/1.0.0/), but the overall
16
+ guiding principle here is that changelogs are for humans, not machines.
17
+
18
+ When reviewing merged PR's the labels to be used are:
19
+
20
+ * breaking - Used when the PR is considered a breaking change.
21
+ * enhancement - Used when the PR adds a new feature or enhancement.
22
+ * bug - Used when the PR fixes a bug included in a previous release.
23
+ * documentation - Used when the PR adds or updates documentation.
24
+ * internal - Used for internal changes that still require a mention in the
25
+ changelog/release notes.
26
+
27
+ ## Release
28
+
29
+ Once the prep work is completed, the actual release is straight forward:
30
+
31
+ * First, ensure that you have installed your projects dependencies:
32
+
33
+ ```sh
34
+ yarn install
35
+ ```
36
+
37
+ * Second, ensure that you have obtained a
38
+ [GitHub personal access token][generate-token] with the `repo` scope (no
39
+ other permissions are needed). Make sure the token is available as the
40
+ `GITHUB_AUTH` environment variable.
41
+
42
+ For instance:
43
+
44
+ ```bash
45
+ export GITHUB_AUTH=abc123def456
46
+ ```
47
+
48
+ [generate-token]: https://github.com/settings/tokens/new?scopes=repo&description=GITHUB_AUTH+env+variable
49
+
50
+ * And last (but not least 😁) do your release.
51
+
52
+ ```sh
53
+ npx release-it
54
+ ```
55
+
56
+ [release-it](https://github.com/release-it/release-it/) manages the actual
57
+ release process. It will prompt you to to choose the version number after which
58
+ you will have the chance to hand tweak the changelog to be used (for the
59
+ `CHANGELOG.md` and GitHub release), then `release-it` continues on to tagging,
60
+ pushing the tag and commits, etc.
@@ -15,6 +15,7 @@ import { ANNOUNCEMENT_ACTION_TYPES } from '../utils/constant';
15
15
  import { defaultA11yAnnouncementConfig } from '../utils/defaults';
16
16
  import { next, schedule, scheduleOnce, later } from '@ember/runloop';
17
17
  import { inject as service } from '@ember/service';
18
+ import { registerDestructor, isDestroyed } from '@ember/destroyable';
18
19
 
19
20
  const NO_MODEL = {};
20
21
 
@@ -488,7 +489,7 @@ export default class SortableGroupModifier extends Modifier {
488
489
  return this.args.named.onChange;
489
490
  }
490
491
 
491
- @service('ember-sortable@ember-sortable')
492
+ @service('ember-sortable-internal-state')
492
493
  sortableService;
493
494
 
494
495
  /**
@@ -620,7 +621,7 @@ export default class SortableGroupModifier extends Modifier {
620
621
  let dimension;
621
622
  let direction = this.direction;
622
623
 
623
- if (!item.isDragging) {
624
+ if (!isDestroyed(item) && !item.isDragging) {
624
625
  set(item, direction, position);
625
626
  }
626
627
 
@@ -710,32 +711,44 @@ export default class SortableGroupModifier extends Modifier {
710
711
  this.element.removeEventListener('focusout', this.focusOut);
711
712
  }
712
713
 
713
- didReceiveArguments() {
714
+ element;
715
+ didSetup = false;
716
+
717
+ constructor(owner, args) {
718
+ super(owner, args);
719
+ registerDestructor(this, cleanup);
720
+ }
721
+
722
+ modify(element /*, positional, named*/) {
723
+ this.element = element;
724
+
714
725
  this.removeEventListener();
715
726
 
727
+ if (!this.didSetup) {
728
+ this.announcer = this._createAnnouncer();
729
+ this.element.insertAdjacentElement('afterend', this.announcer);
730
+ this.sortableService.registerGroup(this.groupName, this);
731
+
732
+ this.didSetup = true;
733
+ }
734
+
716
735
  if (this.disabled) {
717
736
  return;
718
737
  }
719
738
 
720
739
  this.addEventListener();
721
740
  }
741
+ }
722
742
 
723
- didUpdateArguments() {}
724
-
725
- didInstall() {
726
- this.announcer = this._createAnnouncer();
727
- this.element.insertAdjacentElement('afterend', this.announcer);
728
-
729
- this.sortableService.registerGroup(this.groupName, this);
730
- }
731
-
732
- willRemove() {
733
- // todo cleanup the announcer
734
- if (this.announcer.parentNode) {
735
- this.announcer.parentNode.removeChild(this.announcer);
736
- }
737
- this.removeEventListener();
738
-
739
- this.sortableService.deregisterGroup(this.groupName, this);
743
+ /**
744
+ *
745
+ * @param {SortableGroupModifier} instance
746
+ */
747
+ function cleanup(instance) {
748
+ // todo cleanup the announcer
749
+ if (instance.announcer.parentNode) {
750
+ instance.announcer.parentNode.removeChild(instance.announcer);
740
751
  }
752
+ instance.removeEventListener();
753
+ instance.sortableService.deregisterGroup(instance.groupName, instance);
741
754
  }
@@ -15,10 +15,15 @@ import Modifier from 'ember-modifier';
15
15
  * </ol>
16
16
  */
17
17
  export default class SortableHandleModifier extends Modifier {
18
- didInstall() {
19
- // take the model and look up the registered element, the tell that element you are the handle
20
- this.element.dataset.sortableHandle = true;
21
- this.element.tabIndex = '0';
22
- this.element.setAttribute('role', 'button');
18
+ didSetup = false;
19
+
20
+ modify(element /*, positional, named*/) {
21
+ if (!this.didSetup) {
22
+ // take the model and look up the registered element, the tell that element you are the handle
23
+ element.dataset.sortableHandle = true;
24
+ element.tabIndex = '0';
25
+ element.setAttribute('role', 'button');
26
+ this.didSetup = true;
27
+ }
23
28
  }
24
29
  }
@@ -13,6 +13,7 @@ import { buildWaiter } from '@ember/test-waiters';
13
13
  import { inject as service } from '@ember/service';
14
14
  import { assert, deprecate } from '@ember/debug';
15
15
  import config from 'ember-get-config';
16
+ import { registerDestructor } from '@ember/destroyable';
16
17
 
17
18
  const { environment } = config;
18
19
  const isTesting = environment === 'test';
@@ -41,7 +42,7 @@ const sortableItemWaiter = buildWaiter('sortable-item-waiter');
41
42
  export default class SortableItemModifier extends Modifier {
42
43
  className = 'sortable-item';
43
44
 
44
- @service('ember-sortable@ember-sortable') sortableService;
45
+ @service('ember-sortable-internal-state') sortableService;
45
46
 
46
47
  _sortableGroup;
47
48
  /**
@@ -810,27 +811,43 @@ export default class SortableItemModifier extends Modifier {
810
811
  this.element.removeEventListener('touchstart', this.touchStart);
811
812
  }
812
813
 
813
- didReceiveArguments() {
814
+ element;
815
+ didSetup = false;
816
+
817
+ constructor(owner, args) {
818
+ super(owner, args);
819
+ registerDestructor(this, cleanup);
820
+ }
821
+
822
+ modify(element /*, positional, named*/) {
823
+ this.element = element;
824
+
814
825
  this.element.classList.add(this.className);
815
826
 
816
827
  // Instead of using `event.preventDefault()` in the 'primeDrag' event,
817
828
  // (doesn't work in Chrome 56), we set touch-action: none as a workaround.
818
829
  this.handleElement = this.element.querySelector(this.handle);
830
+
819
831
  if (this.handleElement) {
820
832
  this.handleElement.style['touch-action'] = 'none';
821
833
  } else {
822
834
  this.element.style['touch-action'] = 'none';
823
835
  }
824
- }
825
836
 
826
- didInstall() {
827
- this.addEventListener();
828
- this.element.dataset.sortableItem = true;
829
- this.sortableService.registerItem(this.groupName, this);
837
+ if (!this.didSetup) {
838
+ this.addEventListener();
839
+ this.element.dataset.sortableItem = true;
840
+ this.sortableService.registerItem(this.groupName, this);
841
+ this.didSetup = true;
842
+ }
830
843
  }
844
+ }
831
845
 
832
- willRemove() {
833
- this.removeEventListener();
834
- this.sortableService.deregisterItem(this.groupName, this);
835
- }
846
+ /**
847
+ *
848
+ * @param {SortableItemModifier} instance
849
+ */
850
+ function cleanup(instance) {
851
+ instance.removeEventListener();
852
+ instance.sortableService.deregisterItem(instance.groupName, instance);
836
853
  }
@@ -0,0 +1 @@
1
+ export { default } from 'ember-sortable/services/ember-sortable';
package/package.json CHANGED
@@ -1,81 +1,84 @@
1
1
  {
2
2
  "name": "ember-sortable",
3
- "version": "3.0.1",
3
+ "version": "4.0.0",
4
4
  "description": "Sortable UI primitives for Ember.",
5
5
  "keywords": [
6
6
  "ember-addon",
7
7
  "sortable"
8
8
  ],
9
+ "repository": "https://github.com/adopted-ember-addons/ember-sortable",
9
10
  "license": "MIT",
10
11
  "author": "",
11
12
  "directories": {
12
13
  "doc": "doc",
13
14
  "test": "tests"
14
15
  },
15
- "repository": "https://github.com/adopted-ember-addons/ember-sortable",
16
16
  "scripts": {
17
17
  "build": "ember build",
18
18
  "lint:hbs": "ember-template-lint .",
19
19
  "lint:js": "eslint .",
20
20
  "start": "ember serve",
21
- "test": "ember test",
21
+ "test:ember": "ember test",
22
22
  "test:all": "ember try:each",
23
23
  "lint": "yarn lint:hbs && yarn lint:js",
24
24
  "release": "release-it"
25
25
  },
26
26
  "dependencies": {
27
27
  "@ember/render-modifiers": "^1.0.2 || ^2.0.0",
28
- "@ember/test-waiters": "^2.4.4",
29
- "ember-cli-babel": "^7.26.6",
30
- "ember-cli-htmlbars": "^5.0.0",
28
+ "@ember/test-waiters": "^3.0.1",
29
+ "ember-cli-babel": "^7.26.11",
30
+ "ember-cli-htmlbars": "^6.0.1",
31
31
  "ember-cli-version-checker": "^5.1.2",
32
- "ember-get-config": "^0.3.0",
33
- "ember-modifier": "^2.1.0",
32
+ "ember-get-config": "^2.0.0",
33
+ "ember-modifier": "^3.2.0",
34
34
  "ember-test-selectors": "^6.0.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@ember/optional-features": "^2.0.0",
38
- "@ember/test-helpers": "^2.4.2",
39
- "@embroider/test-setup": "^0.43.5",
38
+ "@ember/test-helpers": "^2.6.0",
39
+ "@embroider/test-setup": "^1.2.0",
40
40
  "@glimmer/component": "^1.0.4",
41
41
  "@glimmer/tracking": "^1.0.4",
42
42
  "babel-eslint": "^10.0.3",
43
- "broccoli-asset-rev": "^2.7.0",
44
- "ember-a11y-testing": "^4.3.0",
45
- "ember-cli": "^3.28.0",
43
+ "broccoli-asset-rev": "^3.0.0",
44
+ "ember-a11y-testing": "^5.0.0",
45
+ "ember-auto-import": "^2.4.0",
46
+ "ember-cli": "^4.2.0",
46
47
  "ember-cli-dependency-checker": "^3.0.0",
47
- "ember-cli-eslint": "^4.2.3",
48
- "ember-cli-inject-live-reload": "^1.8.2",
48
+ "ember-cli-inject-live-reload": "^2.0.0",
49
49
  "ember-cli-sri": "^2.1.1",
50
50
  "ember-cli-terser": "^4.0.2",
51
51
  "ember-disable-prototype-extensions": "^1.1.3",
52
52
  "ember-export-application-global": "^2.0.0",
53
53
  "ember-load-initializers": "^2.1.2",
54
- "ember-maybe-import-regenerator": "^0.1.6",
55
- "ember-qunit": "^5.1.4",
54
+ "ember-qunit": "mydea/ember-qunit#fn/ember-auto-import-v2-node-12",
56
55
  "ember-resolver": "^8.0.3",
57
- "ember-source": "^3.28.0",
56
+ "ember-source": "^4.2.0",
58
57
  "ember-source-channel-url": "^3.0.0",
59
- "ember-template-lint": "^3.6.0",
60
- "ember-try": "^1.4.0",
58
+ "ember-template-lint": "^4.2.0",
59
+ "ember-try": "^2.0.0",
61
60
  "eslint": "^7.32.0",
62
- "eslint-config-prettier": "^8.3.0",
63
- "eslint-plugin-ember": "~9.6.0",
61
+ "eslint-config-prettier": "^8.4.0",
62
+ "eslint-plugin-ember": "^10.5.9",
64
63
  "eslint-plugin-node": "^11.1.0",
65
- "eslint-plugin-prettier": "^3.4.1",
66
- "eslint-plugin-qunit": "^6.2.0",
64
+ "eslint-plugin-prettier": "^4.0.0",
65
+ "eslint-plugin-qunit": "^7.2.0",
67
66
  "husky": "^3.0.8",
68
67
  "lerna-changelog": "^0.8.2",
69
68
  "loader.js": "^4.7.0",
70
69
  "npm-run-all": "^4.1.5",
71
- "prettier": "^2.3.2",
72
- "qunit": "^2.16.0",
73
- "qunit-dom": "^1.6.0",
70
+ "prettier": "^2.5.1",
71
+ "qunit": "^2.18.0",
72
+ "qunit-dom": "^2.0.0",
74
73
  "release-it": "^14.11.8",
75
- "release-it-lerna-changelog": "^4.0.1"
74
+ "release-it-lerna-changelog": "^4.0.1",
75
+ "webpack": "^5.69.1"
76
76
  },
77
77
  "engines": {
78
- "node": "12.* || 14.* || >= 16"
78
+ "node": "14.* || >= 16"
79
+ },
80
+ "publishConfig": {
81
+ "registry": "https://registry.npmjs.org"
79
82
  },
80
83
  "ember": {
81
84
  "edition": "octane"
@@ -87,14 +90,20 @@
87
90
  "release-it": {
88
91
  "plugins": {
89
92
  "release-it-lerna-changelog": {
90
- "infile": "CHANGELOG.md"
93
+ "infile": "CHANGELOG.md",
94
+ "launchEditor": false
91
95
  }
92
96
  },
93
97
  "git": {
94
98
  "tagName": "v${version}"
95
99
  },
96
100
  "github": {
97
- "release": true
101
+ "release": true,
102
+ "tokenRef": "GITHUB_AUTH"
98
103
  }
104
+ },
105
+ "volta": {
106
+ "node": "14.19.2",
107
+ "yarn": "1.22.18"
99
108
  }
100
109
  }
@@ -1,25 +0,0 @@
1
- ---
2
- name: Bug report
3
- about: Create a report to help us improve
4
- labels:
5
- ---
6
-
7
- **Describe the bug**
8
- A clear and concise description of what the bug is.
9
-
10
- **To Reproduce**
11
- Steps to reproduce the behavior:
12
-
13
- 1. Go to '...'
14
- 2. Click on '....'
15
- 3. Scroll down to '....'
16
- 4. See error
17
-
18
- **Expected behavior**
19
- A clear and concise description of what you expected to happen.
20
-
21
- **Screenshots**
22
- If applicable, add screenshots to help explain your problem.
23
-
24
- **Additional context**
25
- Add any other context about the problem here.
@@ -1,71 +0,0 @@
1
- # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
2
- # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
3
-
4
- name: build
5
-
6
- on:
7
- workflow_dispatch:
8
- push:
9
- branches: [master]
10
- pull_request:
11
- branches: [master]
12
-
13
- jobs:
14
- main-test:
15
- name: Main test
16
- runs-on: ubuntu-latest
17
- steps:
18
- - uses: actions/checkout@v2
19
- - name: Use Node.js 12
20
- uses: actions/setup-node@v2
21
- with:
22
- node-version: 12
23
- cache: yarn
24
- - name: Install Dependencies
25
- run: yarn install --frozen-lockfile
26
- - name: Running tests
27
- run: yarn test
28
-
29
- ember-try-required:
30
- name: Ember try ember-${{matrix.scenario}}
31
-
32
- runs-on: ubuntu-latest
33
-
34
- strategy:
35
- fail-fast: false
36
- matrix:
37
- scenario: [ember-lts-3.20, ember-lts-3.24, ember-lts-3.28]
38
- steps:
39
- - uses: actions/checkout@v2
40
- - name: Use Node.js 12
41
- uses: actions/setup-node@v2
42
- with:
43
- node-version: 12
44
- cache: yarn
45
- - name: Install Dependencies
46
- run: yarn install --frozen-lockfile
47
- - name: Running test
48
- run: yarn ember try:one ${{ matrix.scenario }}
49
-
50
- ember-try-optional:
51
- name: Ember try ember-${{matrix.scenario}}
52
-
53
- runs-on: ubuntu-latest
54
-
55
- strategy:
56
- fail-fast: false
57
- max-parallel: 1
58
- matrix:
59
- scenario: [ember-beta, ember-release, ember-canary]
60
- steps:
61
- - uses: actions/checkout@v2
62
- - name: Use Node.js 12
63
- uses: actions/setup-node@v2
64
- with:
65
- node-version: 12
66
- cache: yarn
67
- - name: Install Dependencies
68
- run: yarn install --frozen-lockfile
69
- - name: Running test
70
- run: yarn ember try:one ${{ matrix.scenario }}
71
- continue-on-error: true