-
Notifications
You must be signed in to change notification settings - Fork 10
83 lines (70 loc) · 2.79 KB
/
release-please.yml
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
name: Run Release Please
on:
push:
branches:
- main
jobs:
release-package:
runs-on: ubuntu-latest
permissions:
id-token: write # Needed if using OIDC to get release secrets.
contents: write # Contents and pull-requests are for release-please to make releases.
pull-requests: write
outputs:
release-created: ${{ steps.release.outputs.release_created }}
upload-tag-name: ${{ steps.release.outputs.tag_name }}
package-hashes: ${{ steps.ci.outputs.package-hashes }}
steps:
- uses: googleapis/release-please-action@v4
id: release
- uses: actions/checkout@v4
with:
fetch-depth: 0 # If you only need the current version keep this.
#
# This step runs and updates an existing PR
#
- uses: ./.github/actions/update-cabal
if: ${{ steps.release.outputs.pr != '' }}
with:
branch: ${{ fromJSON(steps.release.outputs.pr).headBranchName }}
#
# These remaining steps are ONLY run if a release was actually created
#
- uses: launchdarkly/gh-actions/actions/[email protected]
name: 'Get Hackage token'
if: ${{ steps.release.outputs.releases_created == 'true' }}
with:
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
ssm_parameter_pairs: '/production/common/releasing/hackage/password = HACKAGE_TOKEN'
- uses: ./.github/actions/setup-cache
if: ${{ steps.release.outputs.releases_created == 'true' }}
- uses: ./.github/actions/ci
id: ci
if: ${{ steps.release.outputs.releases_created == 'true' }}
with:
token: ${{secrets.GITHUB_TOKEN}}
- uses: ./.github/actions/build-docs
if: ${{ steps.release.outputs.releases_created == 'true' }}
- uses: ./.github/actions/publish
if: ${{ steps.release.outputs.releases_created == 'true' }}
with:
token: ${{ env.HACKAGE_TOKEN }}
dry_run: 'false'
- uses: ./.github/actions/publish-docs
if: ${{ steps.release.outputs.releases_created == 'true' }}
with:
# If publishing somewhere else, then get the token from SSM. If you need both github,
# and another token, then add more tokens to the composite action.
token: ${{secrets.GITHUB_TOKEN}}
release-provenance:
needs: [ 'release-package' ]
if: ${{ needs.release-package.outputs.release-created == 'true' }}
permissions:
actions: read
id-token: write
contents: write
uses: slsa-framework/slsa-github-generator/.github/workflows/[email protected]
with:
base64-subjects: "${{ needs.release-package.outputs.package-hashes }}"
upload-assets: true
upload-tag-name: ${{ needs.release-package.outputs.upload-tag-name }}