-
Notifications
You must be signed in to change notification settings - Fork 69
132 lines (112 loc) · 4.04 KB
/
publish-release.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: Publish Release
on:
push:
branches:
- main
jobs:
publish_release:
name: Publish Release
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
# Note: `prepare-release.yaml` sets this commit message
if: ${{ contains(github.event.head_commit.message, 'release core packages') }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/setup-and-build
# sets steps.resolve-release-version.outputs.version
- uses: ./.github/actions/resolve-release-version
id: resolve-release-version
- name: Publish to npm
run: >
pnpm --recursive
--filter "!@tutorialkit/cli"
--filter "@tutorialkit/*"
exec pnpm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Create and push git tag
run: |
git config --global user.name 'github-actions'
git config --global user.email 'github-actions@users.noreply.github.com'
git tag ${{ steps.resolve-release-version.outputs.version }}
git push origin ${{ steps.resolve-release-version.outputs.version }}
publish_docs:
name: Publish documentation
needs: [publish_release]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/setup-and-build
- name: Build docs
run: pnpm run docs:build
- name: Deploy documentation
uses: cloudflare/pages-action@v1
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
projectName: tutorialkit-docs-page
workingDirectory: 'docs/tutorialkit.dev'
directory: dist
prepare_cli_release:
name: Prepare Release for CLI
needs: [publish_release]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/setup-and-build
# sets steps.resolve-release-version.outputs.version
- uses: ./.github/actions/resolve-release-version
id: resolve-release-version
- name: Bump version
run: >
pnpm --recursive
--filter @tutorialkit/cli
exec npm version --no-git-tag-version --allow-same-version ${{ steps.resolve-release-version.outputs.version }}
- name: Create Pull Request
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c
with:
# Note: `publish-release.yaml` checks explicitly for this commit message
commit-message: 'chore: release CLI v${{ steps.resolve-release-version.outputs.version }}'
title: 'chore: release CLI v${{ steps.resolve-release-version.outputs.version }}'
body: 'Bump CLI to version ${{ steps.resolve-release-version.outputs.version }}.'
reviewers: SamVerschueren,d3lm,Nemikolh,AriPerkkio
branch: chore/release-cli-${{ steps.resolve-release-version.outputs.version }}
token: ${{ secrets.GITOPS_REPO_PAT }}
publish_release_CLI:
name: Publish Release CLI
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
# Note: commit message is set by prepare_cli_release above
if: ${{ contains(github.event.head_commit.message, 'release CLI') }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/setup-and-build
- name: Update template's versions
working-directory: ./packages/cli
run: pnpm build-release
- name: Integration Tests
working-directory: ./integration
run: pnpm test
- name: Publish to npm
run: >
pnpm --recursive
--filter @tutorialkit/cli
exec pnpm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}