@ember/app-blueprint 6.10.3 → 6.10.5
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/.github/workflows/plan-release.yml +60 -0
- package/.github/workflows/publish.yml +53 -0
- package/.release-plan.json +8 -4
- package/CHANGELOG.md +32 -0
- package/conditional-files/_js_babel.config.mjs +3 -1
- package/conditional-files/_js_eslint.config.mjs +4 -4
- package/conditional-files/_ts_babel.config.mjs +3 -1
- package/conditional-files/_ts_eslint.config.mjs +4 -4
- package/files/app/app.ts +2 -2
- package/files/tests/test-helper.ts +2 -2
- package/package.json +4 -1
- package/.github/workflows/plan-alpha-release.yml +0 -95
- package/.github/workflows/plan-beta-release.yml +0 -95
- package/.github/workflows/plan-stable-release.yml +0 -95
- package/.github/workflows/publish-alpha.yml +0 -42
- package/.github/workflows/publish-beta.yml +0 -42
- package/.github/workflows/publish-stable.yml +0 -42
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
name: Plan v6.10.x Release
|
|
2
|
+
on:
|
|
3
|
+
workflow_dispatch:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- v-6-10
|
|
7
|
+
pull_request_target: # This workflow has permissions on the repo, do NOT run code from PRs in this workflow. See https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
|
|
8
|
+
types:
|
|
9
|
+
- labeled
|
|
10
|
+
- unlabeled
|
|
11
|
+
|
|
12
|
+
concurrency:
|
|
13
|
+
group: plan-release # only the latest one of these should ever be running
|
|
14
|
+
cancel-in-progress: true
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
should-run-release-plan-prepare:
|
|
18
|
+
name: Should we run release-plan prepare?
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
outputs:
|
|
21
|
+
should-prepare: ${{ steps.should-prepare.outputs.should-prepare }}
|
|
22
|
+
steps:
|
|
23
|
+
- uses: release-plan/actions/should-prepare-release@v1
|
|
24
|
+
with:
|
|
25
|
+
ref: 'v-6-10'
|
|
26
|
+
id: should-prepare
|
|
27
|
+
|
|
28
|
+
create-prepare-release-pr:
|
|
29
|
+
name: Create Prepare Release PR
|
|
30
|
+
runs-on: ubuntu-latest
|
|
31
|
+
timeout-minutes: 5
|
|
32
|
+
needs: should-run-release-plan-prepare
|
|
33
|
+
permissions:
|
|
34
|
+
contents: write
|
|
35
|
+
issues: read
|
|
36
|
+
pull-requests: write
|
|
37
|
+
if: needs.should-run-release-plan-prepare.outputs.should-prepare == 'true'
|
|
38
|
+
steps:
|
|
39
|
+
- uses: release-plan/actions/prepare@v1
|
|
40
|
+
name: Run release-plan prepare
|
|
41
|
+
with:
|
|
42
|
+
ref: 'v-6-10'
|
|
43
|
+
env:
|
|
44
|
+
GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }}
|
|
45
|
+
id: explanation
|
|
46
|
+
|
|
47
|
+
- uses: peter-evans/create-pull-request@v8
|
|
48
|
+
name: Create Prepare Release PR
|
|
49
|
+
with:
|
|
50
|
+
commit-message: "Prepare Release ${{ steps.explanation.outputs.new-version}} using 'release-plan'"
|
|
51
|
+
labels: "internal"
|
|
52
|
+
sign-commits: true
|
|
53
|
+
branch: release-preview-v-6-10
|
|
54
|
+
title: Prepare Release ${{ steps.explanation.outputs.new-version }}
|
|
55
|
+
body: |
|
|
56
|
+
This PR is a preview of the release that [release-plan](https://github.com/embroider-build/release-plan) has prepared. To release you should just merge this PR 👍
|
|
57
|
+
|
|
58
|
+
-----------------------------------------
|
|
59
|
+
|
|
60
|
+
${{ steps.explanation.outputs.text }}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Every push to any of the primary branches (master, beta, release) with .release-plan.json modified,
|
|
2
|
+
# runs release-plan publish.
|
|
3
|
+
|
|
4
|
+
name: Publish
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
push:
|
|
9
|
+
branches:
|
|
10
|
+
- main
|
|
11
|
+
- master
|
|
12
|
+
- release
|
|
13
|
+
- beta
|
|
14
|
+
- v-*
|
|
15
|
+
paths:
|
|
16
|
+
- '.release-plan.json'
|
|
17
|
+
|
|
18
|
+
concurrency:
|
|
19
|
+
group: publish-${{ github.head_ref || github.ref }}
|
|
20
|
+
cancel-in-progress: true
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
publish:
|
|
24
|
+
name: "NPM Publish"
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
permissions:
|
|
27
|
+
contents: write
|
|
28
|
+
id-token: write
|
|
29
|
+
attestations: write
|
|
30
|
+
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v6
|
|
33
|
+
- uses: pnpm/action-setup@v4
|
|
34
|
+
- uses: actions/setup-node@v6
|
|
35
|
+
with:
|
|
36
|
+
node-version: 22
|
|
37
|
+
registry-url: 'https://registry.npmjs.org'
|
|
38
|
+
cache: pnpm
|
|
39
|
+
- run: npm install -g npm@latest # ensure that the globally installed npm is new enough to support OIDC
|
|
40
|
+
- run: pnpm install --frozen-lockfile
|
|
41
|
+
- name: Publish to NPM
|
|
42
|
+
# pass --github-prerelease when we are only branch other than release
|
|
43
|
+
# pass --publish-branch=<branch-name> when we are on a branch other than master/main
|
|
44
|
+
run: |
|
|
45
|
+
if [ ${{ github.ref }} = "refs/heads/beta" ]; then
|
|
46
|
+
pnpm release-plan publish --github-prerelease --publish-branch=beta
|
|
47
|
+
elif [ ${{ github.ref }} = "refs/heads/main" ]; then
|
|
48
|
+
pnpm release-plan publish --github-prerelease
|
|
49
|
+
else
|
|
50
|
+
pnpm release-plan publish --publish-branch=${{github.ref_name}}
|
|
51
|
+
fi
|
|
52
|
+
env:
|
|
53
|
+
GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }}
|
package/.release-plan.json
CHANGED
|
@@ -2,17 +2,21 @@
|
|
|
2
2
|
"solution": {
|
|
3
3
|
"@ember/app-blueprint": {
|
|
4
4
|
"impact": "patch",
|
|
5
|
-
"oldVersion": "6.10.
|
|
6
|
-
"newVersion": "6.10.
|
|
7
|
-
"tagName": "
|
|
5
|
+
"oldVersion": "6.10.4",
|
|
6
|
+
"newVersion": "6.10.5",
|
|
7
|
+
"tagName": "v-6-10",
|
|
8
8
|
"constraints": [
|
|
9
9
|
{
|
|
10
10
|
"impact": "patch",
|
|
11
11
|
"reason": "Appears in changelog section :bug: Bug Fix"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"impact": "patch",
|
|
15
|
+
"reason": "Appears in changelog section :house: Internal"
|
|
12
16
|
}
|
|
13
17
|
],
|
|
14
18
|
"pkgJSONPath": "./package.json"
|
|
15
19
|
}
|
|
16
20
|
},
|
|
17
|
-
"description": "## Release (2026-
|
|
21
|
+
"description": "## Release (2026-03-03)\n\n* @ember/app-blueprint 6.10.5 (patch)\n\n#### :bug: Bug Fix\n* `@ember/app-blueprint`\n * [#229](https://github.com/ember-cli/ember-app-blueprint/pull/229) [v6.10 backport] fix decorator-transforms runtime path in babel.config.mjs ([@mansona](https://github.com/mansona))\n\n#### :house: Internal\n* `@ember/app-blueprint`\n * [#236](https://github.com/ember-cli/ember-app-blueprint/pull/236) [v6.10 backport] setup release for v6.10.x branch ([@mansona](https://github.com/mansona))\n * [#230](https://github.com/ember-cli/ember-app-blueprint/pull/230) setup release for v6.10.x branch ([@mansona](https://github.com/mansona))\n\n#### Committers: 1\n- Chris Manson ([@mansona](https://github.com/mansona))\n"
|
|
18
22
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Release (2026-03-03)
|
|
4
|
+
|
|
5
|
+
* @ember/app-blueprint 6.10.5 (patch)
|
|
6
|
+
|
|
7
|
+
#### :bug: Bug Fix
|
|
8
|
+
* `@ember/app-blueprint`
|
|
9
|
+
* [#229](https://github.com/ember-cli/ember-app-blueprint/pull/229) [v6.10 backport] fix decorator-transforms runtime path in babel.config.mjs ([@mansona](https://github.com/mansona))
|
|
10
|
+
|
|
11
|
+
#### :house: Internal
|
|
12
|
+
* `@ember/app-blueprint`
|
|
13
|
+
* [#236](https://github.com/ember-cli/ember-app-blueprint/pull/236) [v6.10 backport] setup release for v6.10.x branch ([@mansona](https://github.com/mansona))
|
|
14
|
+
* [#230](https://github.com/ember-cli/ember-app-blueprint/pull/230) setup release for v6.10.x branch ([@mansona](https://github.com/mansona))
|
|
15
|
+
|
|
16
|
+
#### Committers: 1
|
|
17
|
+
- Chris Manson ([@mansona](https://github.com/mansona))
|
|
18
|
+
|
|
19
|
+
## Release (2026-02-09)
|
|
20
|
+
|
|
21
|
+
* @ember/app-blueprint 6.10.4 (patch)
|
|
22
|
+
|
|
23
|
+
#### :bug: Bug Fix
|
|
24
|
+
* `@ember/app-blueprint`
|
|
25
|
+
* [#209](https://github.com/ember-cli/ember-app-blueprint/pull/209) Remove unnecessary empty lines when `--no-warp-drive` was passed ([@mkszepp](https://github.com/mkszepp))
|
|
26
|
+
|
|
27
|
+
#### :house: Internal
|
|
28
|
+
* `@ember/app-blueprint`
|
|
29
|
+
* [#217](https://github.com/ember-cli/ember-app-blueprint/pull/217) update release-plan to support OIDC ([@mansona](https://github.com/mansona))
|
|
30
|
+
|
|
31
|
+
#### Committers: 2
|
|
32
|
+
- Chris Manson ([@mansona](https://github.com/mansona))
|
|
33
|
+
- Markus Sanin ([@mkszepp](https://github.com/mkszepp))
|
|
34
|
+
|
|
3
35
|
## Release (2026-01-23)
|
|
4
36
|
|
|
5
37
|
* @ember/app-blueprint 6.10.3 (patch)
|
|
@@ -17,8 +17,8 @@ import js from '@eslint/js';
|
|
|
17
17
|
import { defineConfig, globalIgnores } from 'eslint/config';
|
|
18
18
|
|
|
19
19
|
import ember from 'eslint-plugin-ember/recommended';
|
|
20
|
-
<% if (warpDrive) { %>import WarpDrive from 'eslint-plugin-warp-drive/recommended'
|
|
21
|
-
import eslintConfigPrettier from 'eslint-config-prettier';
|
|
20
|
+
<% if (warpDrive) { %>import WarpDrive from 'eslint-plugin-warp-drive/recommended';
|
|
21
|
+
<% } %>import eslintConfigPrettier from 'eslint-config-prettier';
|
|
22
22
|
import qunit from 'eslint-plugin-qunit';
|
|
23
23
|
import n from 'eslint-plugin-n';
|
|
24
24
|
|
|
@@ -35,8 +35,8 @@ export default defineConfig([
|
|
|
35
35
|
eslintConfigPrettier,
|
|
36
36
|
ember.configs.base,
|
|
37
37
|
ember.configs.gjs,
|
|
38
|
-
<% if (warpDrive) { %>...WarpDrive
|
|
39
|
-
|
|
38
|
+
<% if (warpDrive) { %>...WarpDrive,
|
|
39
|
+
<% } %>/**
|
|
40
40
|
* https://eslint.org/docs/latest/use/configure/configuration-files#configuring-linter-options
|
|
41
41
|
*/
|
|
42
42
|
{
|
|
@@ -19,8 +19,8 @@ import { defineConfig, globalIgnores } from 'eslint/config';
|
|
|
19
19
|
import ts from 'typescript-eslint';
|
|
20
20
|
|
|
21
21
|
import ember from 'eslint-plugin-ember/recommended';
|
|
22
|
-
<% if (warpDrive) { %>import WarpDrive from 'eslint-plugin-warp-drive/recommended'
|
|
23
|
-
|
|
22
|
+
<% if (warpDrive) { %>import WarpDrive from 'eslint-plugin-warp-drive/recommended';
|
|
23
|
+
<% } %>
|
|
24
24
|
import eslintConfigPrettier from 'eslint-config-prettier';
|
|
25
25
|
import qunit from 'eslint-plugin-qunit';
|
|
26
26
|
import n from 'eslint-plugin-n';
|
|
@@ -46,8 +46,8 @@ export default defineConfig([
|
|
|
46
46
|
ember.configs.base,
|
|
47
47
|
ember.configs.gjs,
|
|
48
48
|
ember.configs.gts,
|
|
49
|
-
<% if (warpDrive) { %>...WarpDrive
|
|
50
|
-
eslintConfigPrettier,
|
|
49
|
+
<% if (warpDrive) { %>...WarpDrive,
|
|
50
|
+
<% } %>eslintConfigPrettier,
|
|
51
51
|
/**
|
|
52
52
|
* https://eslint.org/docs/latest/use/configure/configuration-files#configuring-linter-options
|
|
53
53
|
*/
|
package/files/app/app.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<% if (warpDrive) { %>import '@warp-drive/ember/install'
|
|
2
|
-
import Application from '@ember/application';
|
|
1
|
+
<% if (warpDrive) { %>import '@warp-drive/ember/install';
|
|
2
|
+
<% } %>import Application from '@ember/application';
|
|
3
3
|
import compatModules from '@embroider/virtual/compat-modules';
|
|
4
4
|
import Resolver from 'ember-resolver';
|
|
5
5
|
import loadInitializers from 'ember-load-initializers';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<% if (warpDrive) { %>import '@warp-drive/ember/install'
|
|
2
|
-
import Application from '<%= modulePrefix %>/app';
|
|
1
|
+
<% if (warpDrive) { %>import '@warp-drive/ember/install';
|
|
2
|
+
<% } %>import Application from '<%= modulePrefix %>/app';
|
|
3
3
|
import config from '<%= modulePrefix %>/config/environment';
|
|
4
4
|
import * as QUnit from 'qunit';
|
|
5
5
|
import { setApplication } from '@ember/test-helpers';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ember/app-blueprint",
|
|
3
|
-
"version": "6.10.
|
|
3
|
+
"version": "6.10.5",
|
|
4
4
|
"description": "Blueprint for next generation of Ember apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-blueprint"
|
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
"type": "git",
|
|
10
10
|
"url": "git@github.com:ember-cli/ember-app-blueprint.git"
|
|
11
11
|
},
|
|
12
|
+
"release-plan": {
|
|
13
|
+
"publishTag": "v-6-10"
|
|
14
|
+
},
|
|
12
15
|
"license": "MIT",
|
|
13
16
|
"author": "",
|
|
14
17
|
"main": "index.js",
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
name: Plan Alpha Release
|
|
2
|
-
on:
|
|
3
|
-
workflow_dispatch:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- main
|
|
7
|
-
pull_request_target: # This workflow has permissions on the repo, do NOT run code from PRs in this workflow. See https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
|
|
8
|
-
types:
|
|
9
|
-
- labeled
|
|
10
|
-
- unlabeled
|
|
11
|
-
branches:
|
|
12
|
-
- main
|
|
13
|
-
|
|
14
|
-
concurrency:
|
|
15
|
-
group: plan-release-alpha # only the latest one of these should ever be running
|
|
16
|
-
cancel-in-progress: true
|
|
17
|
-
|
|
18
|
-
jobs:
|
|
19
|
-
is-this-a-release:
|
|
20
|
-
name: "Is this a release?"
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
outputs:
|
|
23
|
-
command: ${{ steps.check-release.outputs.command }}
|
|
24
|
-
|
|
25
|
-
steps:
|
|
26
|
-
- uses: actions/checkout@v4
|
|
27
|
-
with:
|
|
28
|
-
fetch-depth: 2
|
|
29
|
-
ref: 'main'
|
|
30
|
-
# This will only cause the `is-this-a-release` job to have a "command" of `release`
|
|
31
|
-
# when the .release-plan.json file was changed on the last commit.
|
|
32
|
-
- id: check-release
|
|
33
|
-
run: if git diff --name-only HEAD HEAD~1 | grep -w -q ".release-plan.json"; then echo "command=release"; fi >> $GITHUB_OUTPUT
|
|
34
|
-
|
|
35
|
-
create-prepare-release-pr:
|
|
36
|
-
name: Create Prepare Release PR
|
|
37
|
-
runs-on: ubuntu-latest
|
|
38
|
-
timeout-minutes: 5
|
|
39
|
-
needs: is-this-a-release
|
|
40
|
-
permissions:
|
|
41
|
-
contents: write
|
|
42
|
-
issues: read
|
|
43
|
-
pull-requests: write
|
|
44
|
-
# only run on push event or workflow dispatch if plan wasn't updated (don't create a release plan when we're releasing)
|
|
45
|
-
# only run on labeled event if the PR has already been merged
|
|
46
|
-
if: ((github.event_name == 'push' || github.event_name == 'workflow_dispatch') && needs.is-this-a-release.outputs.command != 'release') || (github.event_name == 'pull_request_target' && github.event.pull_request.merged == true)
|
|
47
|
-
|
|
48
|
-
steps:
|
|
49
|
-
- uses: actions/checkout@v4
|
|
50
|
-
# We need to download lots of history so that
|
|
51
|
-
# github-changelog can discover what's changed since the last release
|
|
52
|
-
with:
|
|
53
|
-
fetch-depth: 0
|
|
54
|
-
ref: 'main'
|
|
55
|
-
- uses: pnpm/action-setup@v4
|
|
56
|
-
- uses: actions/setup-node@v4
|
|
57
|
-
with:
|
|
58
|
-
node-version: 18
|
|
59
|
-
cache: pnpm
|
|
60
|
-
- run: pnpm install --frozen-lockfile
|
|
61
|
-
- name: "Generate Explanation and Prep Changelogs"
|
|
62
|
-
id: explanation
|
|
63
|
-
run: |
|
|
64
|
-
set +e
|
|
65
|
-
pnpm release-plan prepare 2> >(tee -a release-plan-stderr.txt >&2)
|
|
66
|
-
|
|
67
|
-
if [ $? -ne 0 ]; then
|
|
68
|
-
release_plan_output=$(cat release-plan-stderr.txt)
|
|
69
|
-
else
|
|
70
|
-
release_plan_output=$(jq .description .release-plan.json -r)
|
|
71
|
-
rm release-plan-stderr.txt
|
|
72
|
-
|
|
73
|
-
if [ $(jq '.solution | length' .release-plan.json) -eq 1 ]; then
|
|
74
|
-
new_version=$(jq -r '.solution[].newVersion' .release-plan.json)
|
|
75
|
-
echo "new_version=v$new_version" >> $GITHUB_OUTPUT
|
|
76
|
-
fi
|
|
77
|
-
fi
|
|
78
|
-
echo 'text<<EOF' >> $GITHUB_OUTPUT
|
|
79
|
-
echo "$release_plan_output" >> $GITHUB_OUTPUT
|
|
80
|
-
echo 'EOF' >> $GITHUB_OUTPUT
|
|
81
|
-
env:
|
|
82
|
-
GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }}
|
|
83
|
-
|
|
84
|
-
- uses: peter-evans/create-pull-request@v7
|
|
85
|
-
with:
|
|
86
|
-
commit-message: "Prepare Release ${{ steps.explanation.outputs.new_version}} using 'release-plan'"
|
|
87
|
-
labels: "internal"
|
|
88
|
-
branch: release-preview
|
|
89
|
-
title: Prepare Alpha Release ${{ steps.explanation.outputs.new_version }}
|
|
90
|
-
body: |
|
|
91
|
-
This PR is a preview of the release that [release-plan](https://github.com/embroider-build/release-plan) has prepared. To release you should just merge this PR 👍
|
|
92
|
-
|
|
93
|
-
-----------------------------------------
|
|
94
|
-
|
|
95
|
-
${{ steps.explanation.outputs.text }}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
name: Plan Beta Release
|
|
2
|
-
on:
|
|
3
|
-
workflow_dispatch:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- beta
|
|
7
|
-
pull_request_target: # This workflow has permissions on the repo, do NOT run code from PRs in this workflow. See https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
|
|
8
|
-
types:
|
|
9
|
-
- labeled
|
|
10
|
-
- unlabeled
|
|
11
|
-
branches:
|
|
12
|
-
- beta
|
|
13
|
-
|
|
14
|
-
concurrency:
|
|
15
|
-
group: plan-release-beta # only the latest one of these should ever be running
|
|
16
|
-
cancel-in-progress: true
|
|
17
|
-
|
|
18
|
-
jobs:
|
|
19
|
-
is-this-a-release:
|
|
20
|
-
name: "Is this a release?"
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
outputs:
|
|
23
|
-
command: ${{ steps.check-release.outputs.command }}
|
|
24
|
-
|
|
25
|
-
steps:
|
|
26
|
-
- uses: actions/checkout@v4
|
|
27
|
-
with:
|
|
28
|
-
fetch-depth: 2
|
|
29
|
-
ref: 'beta'
|
|
30
|
-
# This will only cause the `is-this-a-release` job to have a "command" of `release`
|
|
31
|
-
# when the .release-plan.json file was changed on the last commit.
|
|
32
|
-
- id: check-release
|
|
33
|
-
run: if git diff --name-only HEAD HEAD~1 | grep -w -q ".release-plan.json"; then echo "command=release"; fi >> $GITHUB_OUTPUT
|
|
34
|
-
|
|
35
|
-
create-prepare-release-pr:
|
|
36
|
-
name: Create Prepare Release PR
|
|
37
|
-
runs-on: ubuntu-latest
|
|
38
|
-
timeout-minutes: 5
|
|
39
|
-
needs: is-this-a-release
|
|
40
|
-
permissions:
|
|
41
|
-
contents: write
|
|
42
|
-
issues: read
|
|
43
|
-
pull-requests: write
|
|
44
|
-
# only run on push event or workflow dispatch if plan wasn't updated (don't create a release plan when we're releasing)
|
|
45
|
-
# only run on labeled event if the PR has already been merged
|
|
46
|
-
if: ((github.event_name == 'push' || github.event_name == 'workflow_dispatch') && needs.is-this-a-release.outputs.command != 'release') || (github.event_name == 'pull_request_target' && github.event.pull_request.merged == true)
|
|
47
|
-
|
|
48
|
-
steps:
|
|
49
|
-
- uses: actions/checkout@v4
|
|
50
|
-
# We need to download lots of history so that
|
|
51
|
-
# github-changelog can discover what's changed since the last release
|
|
52
|
-
with:
|
|
53
|
-
fetch-depth: 0
|
|
54
|
-
ref: 'beta'
|
|
55
|
-
- uses: pnpm/action-setup@v4
|
|
56
|
-
- uses: actions/setup-node@v4
|
|
57
|
-
with:
|
|
58
|
-
node-version: 18
|
|
59
|
-
cache: pnpm
|
|
60
|
-
- run: pnpm install --frozen-lockfile
|
|
61
|
-
- name: "Generate Explanation and Prep Changelogs"
|
|
62
|
-
id: explanation
|
|
63
|
-
run: |
|
|
64
|
-
set +e
|
|
65
|
-
pnpm release-plan prepare 2> >(tee -a release-plan-stderr.txt >&2)
|
|
66
|
-
|
|
67
|
-
if [ $? -ne 0 ]; then
|
|
68
|
-
release_plan_output=$(cat release-plan-stderr.txt)
|
|
69
|
-
else
|
|
70
|
-
release_plan_output=$(jq .description .release-plan.json -r)
|
|
71
|
-
rm release-plan-stderr.txt
|
|
72
|
-
|
|
73
|
-
if [ $(jq '.solution | length' .release-plan.json) -eq 1 ]; then
|
|
74
|
-
new_version=$(jq -r '.solution[].newVersion' .release-plan.json)
|
|
75
|
-
echo "new_version=v$new_version" >> $GITHUB_OUTPUT
|
|
76
|
-
fi
|
|
77
|
-
fi
|
|
78
|
-
echo 'text<<EOF' >> $GITHUB_OUTPUT
|
|
79
|
-
echo "$release_plan_output" >> $GITHUB_OUTPUT
|
|
80
|
-
echo 'EOF' >> $GITHUB_OUTPUT
|
|
81
|
-
env:
|
|
82
|
-
GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }}
|
|
83
|
-
|
|
84
|
-
- uses: peter-evans/create-pull-request@v7
|
|
85
|
-
with:
|
|
86
|
-
commit-message: "Prepare Release ${{ steps.explanation.outputs.new_version}} using 'release-plan'"
|
|
87
|
-
labels: "internal"
|
|
88
|
-
branch: release-preview
|
|
89
|
-
title: Prepare Beta Release ${{ steps.explanation.outputs.new_version }}
|
|
90
|
-
body: |
|
|
91
|
-
This PR is a preview of the release that [release-plan](https://github.com/embroider-build/release-plan) has prepared. To release you should just merge this PR 👍
|
|
92
|
-
|
|
93
|
-
-----------------------------------------
|
|
94
|
-
|
|
95
|
-
${{ steps.explanation.outputs.text }}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
name: Plan Stable Release
|
|
2
|
-
on:
|
|
3
|
-
workflow_dispatch:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- release
|
|
7
|
-
pull_request_target: # This workflow has permissions on the repo, do NOT run code from PRs in this workflow. See https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
|
|
8
|
-
types:
|
|
9
|
-
- labeled
|
|
10
|
-
- unlabeled
|
|
11
|
-
branches:
|
|
12
|
-
- release
|
|
13
|
-
|
|
14
|
-
concurrency:
|
|
15
|
-
group: plan-release # only the latest one of these should ever be running
|
|
16
|
-
cancel-in-progress: true
|
|
17
|
-
|
|
18
|
-
jobs:
|
|
19
|
-
is-this-a-release:
|
|
20
|
-
name: "Is this a release?"
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
outputs:
|
|
23
|
-
command: ${{ steps.check-release.outputs.command }}
|
|
24
|
-
|
|
25
|
-
steps:
|
|
26
|
-
- uses: actions/checkout@v4
|
|
27
|
-
with:
|
|
28
|
-
fetch-depth: 2
|
|
29
|
-
ref: 'release'
|
|
30
|
-
# This will only cause the `is-this-a-release` job to have a "command" of `release`
|
|
31
|
-
# when the .release-plan.json file was changed on the last commit.
|
|
32
|
-
- id: check-release
|
|
33
|
-
run: if git diff --name-only HEAD HEAD~1 | grep -w -q ".release-plan.json"; then echo "command=release"; fi >> $GITHUB_OUTPUT
|
|
34
|
-
|
|
35
|
-
create-prepare-release-pr:
|
|
36
|
-
name: Create Prepare Release PR
|
|
37
|
-
runs-on: ubuntu-latest
|
|
38
|
-
timeout-minutes: 5
|
|
39
|
-
needs: is-this-a-release
|
|
40
|
-
permissions:
|
|
41
|
-
contents: write
|
|
42
|
-
issues: read
|
|
43
|
-
pull-requests: write
|
|
44
|
-
# only run on push event or workflow dispatch if plan wasn't updated (don't create a release plan when we're releasing)
|
|
45
|
-
# only run on labeled event if the PR has already been merged
|
|
46
|
-
if: ((github.event_name == 'push' || github.event_name == 'workflow_dispatch') && needs.is-this-a-release.outputs.command != 'release') || (github.event_name == 'pull_request_target' && github.event.pull_request.merged == true)
|
|
47
|
-
|
|
48
|
-
steps:
|
|
49
|
-
- uses: actions/checkout@v4
|
|
50
|
-
# We need to download lots of history so that
|
|
51
|
-
# github-changelog can discover what's changed since the last release
|
|
52
|
-
with:
|
|
53
|
-
fetch-depth: 0
|
|
54
|
-
ref: 'release'
|
|
55
|
-
- uses: pnpm/action-setup@v4
|
|
56
|
-
- uses: actions/setup-node@v4
|
|
57
|
-
with:
|
|
58
|
-
node-version: 18
|
|
59
|
-
cache: pnpm
|
|
60
|
-
- run: pnpm install --frozen-lockfile
|
|
61
|
-
- name: "Generate Explanation and Prep Changelogs"
|
|
62
|
-
id: explanation
|
|
63
|
-
run: |
|
|
64
|
-
set +e
|
|
65
|
-
pnpm release-plan prepare 2> >(tee -a release-plan-stderr.txt >&2)
|
|
66
|
-
|
|
67
|
-
if [ $? -ne 0 ]; then
|
|
68
|
-
release_plan_output=$(cat release-plan-stderr.txt)
|
|
69
|
-
else
|
|
70
|
-
release_plan_output=$(jq .description .release-plan.json -r)
|
|
71
|
-
rm release-plan-stderr.txt
|
|
72
|
-
|
|
73
|
-
if [ $(jq '.solution | length' .release-plan.json) -eq 1 ]; then
|
|
74
|
-
new_version=$(jq -r '.solution[].newVersion' .release-plan.json)
|
|
75
|
-
echo "new_version=v$new_version" >> $GITHUB_OUTPUT
|
|
76
|
-
fi
|
|
77
|
-
fi
|
|
78
|
-
echo 'text<<EOF' >> $GITHUB_OUTPUT
|
|
79
|
-
echo "$release_plan_output" >> $GITHUB_OUTPUT
|
|
80
|
-
echo 'EOF' >> $GITHUB_OUTPUT
|
|
81
|
-
env:
|
|
82
|
-
GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }}
|
|
83
|
-
|
|
84
|
-
- uses: peter-evans/create-pull-request@v7
|
|
85
|
-
with:
|
|
86
|
-
commit-message: "Prepare Release ${{ steps.explanation.outputs.new_version}} using 'release-plan'"
|
|
87
|
-
labels: "internal"
|
|
88
|
-
branch: release-preview
|
|
89
|
-
title: Prepare Stable Release ${{ steps.explanation.outputs.new_version }}
|
|
90
|
-
body: |
|
|
91
|
-
This PR is a preview of the release that [release-plan](https://github.com/embroider-build/release-plan) has prepared. To release you should just merge this PR 👍
|
|
92
|
-
|
|
93
|
-
-----------------------------------------
|
|
94
|
-
|
|
95
|
-
${{ steps.explanation.outputs.text }}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# For every push to the primary branch with .release-plan.json modified,
|
|
2
|
-
# runs release-plan.
|
|
3
|
-
|
|
4
|
-
name: Publish Alpha
|
|
5
|
-
|
|
6
|
-
on:
|
|
7
|
-
workflow_dispatch:
|
|
8
|
-
push:
|
|
9
|
-
branches:
|
|
10
|
-
- main
|
|
11
|
-
paths:
|
|
12
|
-
- '.release-plan.json'
|
|
13
|
-
|
|
14
|
-
concurrency:
|
|
15
|
-
group: publish-${{ github.head_ref || github.ref }}
|
|
16
|
-
cancel-in-progress: true
|
|
17
|
-
|
|
18
|
-
jobs:
|
|
19
|
-
publish:
|
|
20
|
-
name: "NPM Publish"
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
permissions:
|
|
23
|
-
contents: write
|
|
24
|
-
pull-requests: write
|
|
25
|
-
id-token: write
|
|
26
|
-
attestations: write
|
|
27
|
-
|
|
28
|
-
steps:
|
|
29
|
-
- uses: actions/checkout@v4
|
|
30
|
-
- uses: pnpm/action-setup@v4
|
|
31
|
-
- uses: actions/setup-node@v4
|
|
32
|
-
with:
|
|
33
|
-
node-version: 18
|
|
34
|
-
# This creates an .npmrc that reads the NODE_AUTH_TOKEN environment variable
|
|
35
|
-
registry-url: 'https://registry.npmjs.org'
|
|
36
|
-
cache: pnpm
|
|
37
|
-
- run: pnpm install --frozen-lockfile
|
|
38
|
-
- name: Publish to NPM
|
|
39
|
-
run: NPM_CONFIG_PROVENANCE=true pnpm release-plan publish --github-prerelease
|
|
40
|
-
env:
|
|
41
|
-
GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }}
|
|
42
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# For every push to the primary branch with .release-plan.json modified,
|
|
2
|
-
# runs release-plan.
|
|
3
|
-
|
|
4
|
-
name: Publish Beta
|
|
5
|
-
|
|
6
|
-
on:
|
|
7
|
-
workflow_dispatch:
|
|
8
|
-
push:
|
|
9
|
-
branches:
|
|
10
|
-
- beta
|
|
11
|
-
paths:
|
|
12
|
-
- '.release-plan.json'
|
|
13
|
-
|
|
14
|
-
concurrency:
|
|
15
|
-
group: publish-${{ github.head_ref || github.ref }}
|
|
16
|
-
cancel-in-progress: true
|
|
17
|
-
|
|
18
|
-
jobs:
|
|
19
|
-
publish:
|
|
20
|
-
name: "NPM Publish"
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
permissions:
|
|
23
|
-
contents: write
|
|
24
|
-
pull-requests: write
|
|
25
|
-
id-token: write
|
|
26
|
-
attestations: write
|
|
27
|
-
|
|
28
|
-
steps:
|
|
29
|
-
- uses: actions/checkout@v4
|
|
30
|
-
- uses: pnpm/action-setup@v4
|
|
31
|
-
- uses: actions/setup-node@v4
|
|
32
|
-
with:
|
|
33
|
-
node-version: 18
|
|
34
|
-
# This creates an .npmrc that reads the NODE_AUTH_TOKEN environment variable
|
|
35
|
-
registry-url: 'https://registry.npmjs.org'
|
|
36
|
-
cache: pnpm
|
|
37
|
-
- run: pnpm install --frozen-lockfile
|
|
38
|
-
- name: Publish to NPM
|
|
39
|
-
run: NPM_CONFIG_PROVENANCE=true pnpm release-plan publish --publish-branch=beta --github-prerelease
|
|
40
|
-
env:
|
|
41
|
-
GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }}
|
|
42
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# For every push to the primary branch with .release-plan.json modified,
|
|
2
|
-
# runs release-plan.
|
|
3
|
-
|
|
4
|
-
name: Publish Stable
|
|
5
|
-
|
|
6
|
-
on:
|
|
7
|
-
workflow_dispatch:
|
|
8
|
-
push:
|
|
9
|
-
branches:
|
|
10
|
-
- release
|
|
11
|
-
paths:
|
|
12
|
-
- '.release-plan.json'
|
|
13
|
-
|
|
14
|
-
concurrency:
|
|
15
|
-
group: publish-${{ github.head_ref || github.ref }}
|
|
16
|
-
cancel-in-progress: true
|
|
17
|
-
|
|
18
|
-
jobs:
|
|
19
|
-
publish:
|
|
20
|
-
name: "NPM Publish"
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
permissions:
|
|
23
|
-
contents: write
|
|
24
|
-
pull-requests: write
|
|
25
|
-
id-token: write
|
|
26
|
-
attestations: write
|
|
27
|
-
|
|
28
|
-
steps:
|
|
29
|
-
- uses: actions/checkout@v4
|
|
30
|
-
- uses: pnpm/action-setup@v4
|
|
31
|
-
- uses: actions/setup-node@v4
|
|
32
|
-
with:
|
|
33
|
-
node-version: 18
|
|
34
|
-
# This creates an .npmrc that reads the NODE_AUTH_TOKEN environment variable
|
|
35
|
-
registry-url: 'https://registry.npmjs.org'
|
|
36
|
-
cache: pnpm
|
|
37
|
-
- run: pnpm install --frozen-lockfile
|
|
38
|
-
- name: Publish to NPM
|
|
39
|
-
run: NPM_CONFIG_PROVENANCE=true pnpm release-plan publish --publish-branch=release
|
|
40
|
-
env:
|
|
41
|
-
GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }}
|
|
42
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|