1
+ name : Pre-release
2
+
3
+ on :
4
+ push :
5
+ paths :
6
+ - " .changeset/**"
7
+ - " packages/**"
8
+ branches :
9
+ - " beta/release-next"
10
+
11
+ concurrency : ${{ github.workflow }}-${{ github.ref }}
12
+
13
+ jobs :
14
+ prerelease :
15
+ name : changesets pre-release
16
+ runs-on : ubuntu-latest
17
+ timeout-minutes : 30
18
+ permissions :
19
+ contents : write
20
+ pull-requests : write
21
+ id-token : write
22
+ steps :
23
+ - name : Checkout branch
24
+ uses : actions/checkout@v4
25
+ with :
26
+ fetch-depth : 0
27
+
28
+ - name : Install
29
+ uses : ./.github/common-actions/install
30
+
31
+ - name : Debug condition values
32
+ run : |
33
+ echo "pre.json exists: ${{ steps.check_if_pre_json_exists.outputs.files_exists }}"
34
+ echo "Commit message: ${{ github.event.head_commit.message }}"
35
+ echo "Contains version packages: ${{ contains(github.event.head_commit.message, 'ci(changesets): version packages') }}"
36
+ echo "Full condition would be: ${{ steps.check_if_pre_json_exists.outputs.files_exists == 'true' && contains(github.event.head_commit.message, 'ci(changesets): version packages') }}"
37
+
38
+ - name : Check if pre.json exists
39
+ id : check_if_pre_json_exists
40
+
41
+ with :
42
+ files : " .changeset/pre.json"
43
+
44
+ - name : Get pre-release changesets
45
+ id : get-pre-release-changesets
46
+ uses : notiz-dev/github-action-json-property@release
47
+ with :
48
+ path : " .changeset/pre.json"
49
+ prop_path : " changesets"
50
+
51
+ - name : Create pre-release PR
52
+ id : create-pre-release-pr
53
+ if : " ${{ steps.check_if_pre_json_exists.outputs.files_exists == 'true' && !startsWith(github.event.head_commit.message, 'ci(changesets): version packages') }}"
54
+ uses : changesets/action@v1
55
+ with :
56
+ version : pnpm run version
57
+ title : " ci(changesets): :package: version packages"
58
+ commit : " ci(changesets): version packages"
59
+ env :
60
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
61
+
62
+ - name : Tests
63
+ if : " ${{ steps.check_if_pre_json_exists.outputs.files_exists == 'true' && contains(github.event.head_commit.message, 'ci(changesets): version packages') }}"
64
+ run : pnpm test
65
+
66
+ - name : Build
67
+ if : " ${{ steps.check_if_pre_json_exists.outputs.files_exists == 'true' && contains(github.event.head_commit.message, 'ci(changesets): version packages') }}"
68
+ run : pnpm build
69
+ env :
70
+ NODE_OPTIONS : " --max-old-space-size=4096"
71
+
72
+ - name : Publish to NPM
73
+ id : publish-to-npm
74
+ if : " ${{ steps.check_if_pre_json_exists.outputs.files_exists == 'true' && contains(github.event.head_commit.message, 'ci(changesets): version packages') }}"
75
+ uses : changesets/action@v1
76
+ with :
77
+ publish : pnpm run release
78
+ env :
79
+ NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
80
+ NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
81
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments