11
11
12
12
permissions :
13
13
contents : write
14
+ pull-requests : write
14
15
15
16
defaults :
16
17
run :
27
28
os : [ubuntu-latest]
28
29
runs-on : ${{ matrix.os }}
29
30
env :
31
+ GITHUB_TOKEN : ${{ secrets.ACCESS_TOKEN }}
30
32
CACHE_PATH : ${{ matrix.os == 'macos-latest' && '/private/var/tmp/_bazel_runner/' || '~/.cache/bazel' }}
33
+ outputs :
34
+ created : " ${{ steps.release.outputs.prs_created }}"
35
+ pr : " ${{ steps.output-pr.outputs.number }}"
31
36
steps :
32
37
- name : Checkout
33
38
uses : actions/checkout@v4
@@ -55,15 +60,30 @@ jobs:
55
60
run : |
56
61
bazel --output_user_root=${{ env.CACHE_PATH }} test //...
57
62
63
+ # create a release PR
64
+ - name : Run Release-Please
65
+ uses : googleapis/release-please-action@v4
66
+ id : release
67
+ with :
68
+ token : ${{ env.GITHUB_TOKEN }}
69
+ config-file : " release-please-config.json"
70
+ manifest-file : " .release-please-manifest.json"
71
+ release-type : bazel
72
+
73
+ - name : Output crated PR number
74
+ id : output-pr
75
+ run : |
76
+ echo "number=${{ fromJSON(steps.release.outputs.pr).number }}" >> "$GITHUB_OUTPUT"
77
+
58
78
# Fail here if tests didn't succeed
59
79
- name : Generate Release artifacts
60
- if : ${{ success() }}
80
+ if : ${{ success() && steps.release.outputs.prs_created }}
61
81
run : |
62
82
scripts/release.sh executables
63
83
scripts/release.sh tarballs
64
84
65
85
- name : Upload Release artifacts
66
- if : ${{ success() }}
86
+ if : ${{ success() && steps.release.outputs.prs_created }}
67
87
uses : actions/upload-artifact@v4
68
88
with :
69
89
name : distributables
@@ -73,15 +93,18 @@ jobs:
73
93
74
94
dispatch :
75
95
runs-on : ubuntu-latest
96
+ env :
97
+ GITHUB_TOKEN : ${{ secrets.ACCESS_TOKEN }}
76
98
needs : [test]
77
99
steps :
78
100
- name : Dispatch a release workflow run
79
- if : ${{ !failure() }}
101
+ if : ${{ needs.test.outputs.created }}
80
102
uses : actions/github-script@v7
81
103
with :
82
- github-token : ${{ secrets .GITHUB_TOKEN }}
104
+ github-token : " ${{ env .GITHUB_TOKEN }}"
83
105
script : |
84
106
const payload = {
107
+ pr_number: "${{ needs.test.outputs.pr }}"
85
108
run_id: "${{ github.run_id }}",
86
109
sha: "${{ github.sha }}"
87
110
}
0 commit comments