Skip to content

Commit 96faeee

Browse files
committed
backport OIDC-compatible publishing
1 parent 113adcf commit 96faeee

16 files changed

Lines changed: 910 additions & 0 deletions
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: 🐞 Bug report
3+
about: Report a bug in the Ember Framework. Before you create a new issue, please
4+
search for similar issues. It's possible somebody has encountered this bug already.
5+
title: "Bug report"
6+
labels: 'needs-triage'
7+
assignees: ''
8+
9+
---
10+
11+
### 🐞 Describe the Bug
12+
A clear and concise description of what the bug is.
13+
14+
### 🔬 Minimal Reproduction
15+
Describe steps to reproduce. If possible, please, share a link with a minimal reproduction.
16+
17+
<!--
18+
Create a minimal reproduction using one of the following:
19+
- Create a GitHub repository: https://guides.emberjs.com/release/getting-started/quick-start/
20+
- Or use Stackblitz: http://new.emberjs.com
21+
-->
22+
23+
### 😕 Actual Behavior
24+
A clear and concise description of what is happening.
25+
26+
### 🤔 Expected Behavior
27+
A clear and concise description of what you expected to happen.
28+
29+
### 🌍 Environment
30+
31+
- Ember: -
32+
- Ember-CLI: -
33+
- Node.js/npm: -
34+
- OS: -
35+
- Browser: -
36+
37+
### ➕ Additional Context
38+
Add any other context about the problem here.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: 📙 Documentation issue report
3+
about: Report an issue in Ember documentation.
4+
title: "[Documentation] Documentation issue report"
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
### 📙 Describe the Issue
11+
A clear and concise description of what the issue is.
12+
13+
### 🔬 Minimal Reproduction
14+
Please, share a link to the page with the documentation and share steps to reproduce.
15+
16+
### 😕 Actual Behavior
17+
A clear and concise description of what is happening.
18+
19+
### 🤔 Expected Behavior
20+
A clear and concise description of what you expected to happen.
21+
22+
### ➕ Additional Context
23+
Add any other context about the problem here.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
name: 💬 Feature request
3+
about: Please, follow the RFC process for feature requests (https://github.com/emberjs/rfcs).
4+
title: "[Feature] Feature request"
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
Ember has an RFC process for feature requests. Please, do not create a feature request here and follow the RFC process described in https://github.com/emberjs/rfcs.

.github/ISSUE_TEMPLATE/4-other.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
name: Other
3+
about: Report an issue that does not fit any of the categories above.
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+

.github/actions/setup/action.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Setup node and pnpm
2+
description: Setup node and install dependencies using pnpm
3+
inputs:
4+
use_lockfile:
5+
description: 'Whether to use the lockfile vs latest floating dependencies'
6+
required: false
7+
default: true
8+
9+
node-version:
10+
description: 'The node version to use'
11+
required: false
12+
default: 20
13+
runs:
14+
using: 'composite'
15+
steps:
16+
- uses: pnpm/action-setup@v4
17+
name: Install pnpm
18+
with:
19+
run_install: false
20+
- name: Install Node.js
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version: '${{ inputs.node-version }}'
24+
registry-url: 'https://registry.npmjs.org'
25+
cache: pnpm
26+
27+
- run: pnpm install ${{ fromJSON('{"false":"--no-lockfile", "true":"--frozen-lockfile"}')[inputs.use_lockfile] }}
28+
shell: bash

.github/dependabot.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: npm
4+
directory: "/"
5+
schedule:
6+
interval: monthly
7+
open-pull-requests-limit: 10
8+
versioning-strategy: increase
9+
ignore:
10+
- dependency-name: github
11+
versions:
12+
- "> 0.2.4"
13+
- dependency-name: ember-cli
14+
versions:
15+
- 3.25.0
16+
- dependency-name: broccoli-rollup
17+
versions:
18+
- 4.1.1
19+
- package-ecosystem: github-actions
20+
directory: "/"
21+
schedule:
22+
interval: weekly
23+
open-pull-requests-limit: 10
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Alpha Releases
2+
3+
on:
4+
schedule:
5+
- cron: '0 20 * * 3' # weekly (Wednesday)
6+
workflow_dispatch:
7+
8+
jobs:
9+
tests:
10+
uses: ./.github/workflows/ci-jobs.yml
11+
12+
release:
13+
permissions:
14+
contents: read # PAT used for push
15+
16+
name: Tag + Push
17+
runs-on: ubuntu-latest
18+
needs: [ tests ]
19+
steps:
20+
- uses: actions/checkout@v4
21+
with:
22+
persist-credentials: false
23+
- uses: ./.github/actions/setup
24+
- name: setup git
25+
run: |
26+
git config --local user.email '[email protected]'
27+
git config --local user.name 'Ember.js Alpha Releaser'
28+
- name: Find next alpha
29+
run: |
30+
LATEST_ALPHA=`npm view ember-source dist-tags.alpha`
31+
export NEXT_ALPHA=`node bin/next-alpha-version.js ${LATEST_ALPHA}`
32+
echo "NEXT_ALPHA=$NEXT_ALPHA" >> $GITHUB_ENV
33+
- name: bump version
34+
run: npm version ${{env.NEXT_ALPHA}} --allow-same-version --no-git-tag-version
35+
- name: create tag
36+
run: git tag v${{env.NEXT_ALPHA}}-ember-source
37+
- name: push tag
38+
# Push in a way that WILL trigger other workflows
39+
run: git push https://${GITHUB_ACTOR}:${{ secrets.PERSONAL_TOKEN }}@github.com/${GITHUB_REPOSITORY} v${{env.NEXT_ALPHA}}-ember-source

.github/workflows/ci-jobs.yml

Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
name: Reusable CI Jobs
2+
3+
on:
4+
workflow_call:
5+
6+
permissions:
7+
contents: read
8+
9+
jobs:
10+
lint:
11+
name: Linting
12+
runs-on: ubuntu-latest
13+
outputs:
14+
matrix: ${{ steps.set-matrix.outputs.matrix }}
15+
steps:
16+
- uses: actions/checkout@v4
17+
- uses: ./.github/actions/setup
18+
- name: linting
19+
run: pnpm lint
20+
- id: set-matrix
21+
working-directory: smoke-tests/scenarios
22+
run: |
23+
matrix_json=$(pnpm scenario-tester list --require @swc-node/register --files "*-test.ts" --matrix "pnpm run test --filter %s" )
24+
echo "matrix=$matrix_json" >> $GITHUB_OUTPUT
25+
26+
types:
27+
name: Type Checking (current version)
28+
runs-on: ubuntu-latest
29+
steps:
30+
- uses: actions/checkout@v4
31+
- uses: ./.github/actions/setup
32+
- name: build types
33+
run: pnpm build:types
34+
- name: Check internal types
35+
run: pnpm type-check:internals
36+
- name: Check published types
37+
run: pnpm type-check:types
38+
39+
types-range:
40+
name: Type Checking (other supported versions)
41+
runs-on: ubuntu-latest
42+
needs: ["types"]
43+
strategy:
44+
matrix:
45+
ts-version: ["5.2", "5.3", "5.4", "5.5", "5.6", "5.7", "5.8", "5.9"]
46+
steps:
47+
- uses: actions/checkout@v4
48+
- uses: ./.github/actions/setup
49+
- name: build stable type definitions
50+
run: pnpm build:types
51+
- name: install TS@${{matrix.ts-version}}
52+
run: pnpm add --save-dev --workspace-root typescript@${{ matrix.ts-version }}
53+
- name: Check published types
54+
run: pnpm type-check:types
55+
56+
basic-test:
57+
name: Basic Test
58+
runs-on: ubuntu-latest
59+
steps:
60+
- uses: actions/checkout@v4
61+
- uses: ./.github/actions/setup
62+
- name: build
63+
run: pnpm vite build --mode=development
64+
env:
65+
NODE_ENV: development
66+
- name: test
67+
run: pnpm test
68+
69+
variant-tests:
70+
name: ${{ matrix.name }}
71+
runs-on: ubuntu-latest
72+
needs: [basic-test, lint, types]
73+
strategy:
74+
fail-fast: false
75+
matrix:
76+
include:
77+
- name: "All deprecations enabled"
78+
ALL_DEPRECATIONS_ENABLED: "true"
79+
- name: "All deprecations enabled, with optional features"
80+
ALL_DEPRECATIONS_ENABLED: "true"
81+
ENABLE_OPTIONAL_FEATURES: "true"
82+
- name: "Deprecations as errors"
83+
OVERRIDE_DEPRECATION_VERSION: "15.0.0"
84+
- name: "Deprecations as errors, with optional features"
85+
OVERRIDE_DEPRECATION_VERSION: "15.0.0"
86+
ENABLE_OPTIONAL_FEATURES: "true"
87+
- name: "Production build"
88+
BUILD: "production"
89+
- name: "Production build, with optional features"
90+
BUILD: "production"
91+
ENABLE_OPTIONAL_FEATURES: "true"
92+
93+
steps:
94+
- uses: actions/checkout@v4
95+
- uses: ./.github/actions/setup
96+
- name: build
97+
run: pnpm vite build --mode=${{ matrix.BUILD || 'development' }}
98+
env:
99+
NODE_ENV: ${{ matrix.BUILD || 'development' }}
100+
- name: test
101+
env:
102+
ALL_DEPRECATIONS_ENABLED: ${{ matrix.ALL_DEPRECATIONS_ENABLED }}
103+
OVERRIDE_DEPRECATION_VERSION: ${{ matrix.OVERRIDE_DEPRECATION_VERSION }}
104+
ENABLE_OPTIONAL_FEATURES: ${{ matrix.ENABLE_OPTIONAL_FEATURES }}
105+
RAISE_ON_DEPRECATION: ${{ matrix.RAISE_ON_DEPRECATION }}
106+
107+
run: pnpm test
108+
109+
browserstack-test:
110+
name: Browserstack Tests (Safari, Edge)
111+
runs-on: ubuntu-latest
112+
needs: [basic-test, lint, types]
113+
steps:
114+
- uses: actions/checkout@v4
115+
- uses: ./.github/actions/setup
116+
- name: build
117+
env:
118+
ALL_SUPPORTED_BROWSERS: true
119+
NODE_ENV: development
120+
run: pnpm vite build --mode=development
121+
122+
- name: Set BrowserStack Local Identifier
123+
if: startsWith(github.ref, 'refs/tags/v') && endsWith(github.ref, '-ember-source')
124+
run: |
125+
BROWSERSTACK_LOCAL_IDENTIFIER="$GITHUB_RUN_ID-$GITHUB_RUN_ATTEMPT"
126+
echo "BROWSERSTACK_LOCAL_IDENTIFIER=$BROWSERSTACK_LOCAL_IDENTIFIER" >> $GITHUB_ENV
127+
128+
- name: test:browserstack
129+
env:
130+
BROWSERSTACK_USERNAME: emberjscoreteam1
131+
# This is in plaintext on purpose. It has no privileged access to anything (this is a free
132+
# account) and it allows us to run browserstack tests against PRs.
133+
BROWSERSTACK_ACCESS_KEY: o5LNEdygq1SP4L9kst4s
134+
run: pnpm test:browserstack
135+
136+
smoke-test:
137+
name: Smoke tests (Full Ember Apps)
138+
runs-on: ubuntu-latest
139+
needs: [basic-test, lint, types]
140+
strategy:
141+
fail-fast: false
142+
matrix: ${{fromJson(needs.lint.outputs.matrix)}}
143+
steps:
144+
- uses: actions/checkout@v4
145+
- uses: ./.github/actions/setup
146+
with:
147+
use_lockfile: "false"
148+
- name: build
149+
run: pnpm build
150+
- name: test
151+
working-directory: smoke-tests/scenarios
152+
run: |
153+
${{ matrix.command }}
154+
155+
node-test:
156+
name: Node.js Tests
157+
runs-on: ubuntu-latest
158+
needs: [basic-test, lint, types]
159+
steps:
160+
- uses: actions/checkout@v4
161+
- uses: ./.github/actions/setup
162+
- name: build
163+
env:
164+
SHOULD_TRANSPILE_FOR_NODE: true
165+
run: pnpm build
166+
- name: test
167+
run: pnpm test:node
168+
169+
blueprint-test:
170+
name: Blueprint Tests
171+
runs-on: ubuntu-latest
172+
needs: [lint]
173+
steps:
174+
- uses: actions/checkout@v4
175+
- uses: ./.github/actions/setup
176+
- name: test
177+
run: pnpm test:blueprints
178+
179+
browser-test:
180+
name: Browser Tests (Firefox)
181+
runs-on: ubuntu-22.04 # Firefox is not installing on Ubuntu 24 on GitHub Actions https://github.com/browser-actions/setup-firefox/issues/622
182+
needs: [basic-test, lint, types]
183+
steps:
184+
- uses: actions/checkout@v4
185+
- uses: ./.github/actions/setup
186+
- name: build
187+
run: pnpm vite build --mode=development
188+
- name: Setup firefox
189+
uses: browser-actions/setup-firefox@latest
190+
with:
191+
firefox-version: 115.9.1esr
192+
- run: firefox --version
193+
- name: test
194+
run: pnpm ember test --path dist -c testem.ci-browsers.js
195+
196+
perf-check:
197+
name: Perf script still works
198+
runs-on: ubuntu-latest
199+
steps:
200+
- uses: actions/checkout@v6
201+
with:
202+
fetch-depth: 0
203+
- uses: ./.github/actions/setup
204+
- name: Check that the perf script works, so we don't regress
205+
run: RUNS='2' pnpm bench
206+
env:
207+
GIT_LFS_SKIP_SMUDGE: 1

0 commit comments

Comments
 (0)