forked from nim-works/nimskull
-
Notifications
You must be signed in to change notification settings - Fork 0
106 lines (92 loc) · 3.05 KB
/
publisher.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
name: Publish built artifacts
on:
push:
branches:
- devel
# Run every script actions in bash
defaults:
run:
shell: bash
# Since we will be pushing, make sure that only one instance can run at a time.
concurrency: publisher
jobs:
publisher:
runs-on: ubuntu-latest
permissions:
actions: read
contents: write
environment:
name: release
url: ${{ steps.release.outputs.url }}
steps:
# Publish action needs a checkout
- uses: actions/checkout@v4
# Download the latest instance of artifacts from a build done previously
- name: Download generated docs
uses: dawidd6/action-download-artifact@v2.28.0
with:
workflow: ci.yml
workflow_conclusion: success
commit: ${{ github.event.after }}
# Keep up-to-date with ci.yml
name: Generated docs
path: doc/html
- name: Download generated source archive
uses: dawidd6/action-download-artifact@v2.28.0
with:
workflow: ci.yml
workflow_conclusion: success
commit: ${{ github.event.after }}
# Keep up-to-date with ci.yml
name: source archive
path: release-staging
- name: Download generated release binaries
uses: dawidd6/action-download-artifact@v2.28.0
with:
workflow: ci.yml
workflow_conclusion: success
commit: ${{ github.event.after }}
# Keep up-to-date with ci.yml
name: release binaries
path: release-staging
- name: Download release manifest tool
uses: dawidd6/action-download-artifact@v2.28.0
with:
workflow: ci.yml
workflow_conclusion: success
commit: ${{ github.event.after }}
# Keep up-to-date with ci.yml
name: release manifest tool
path: release-staging
- name: Publish docs
uses: JamesIves/github-pages-deploy-action@v4.4.3
with:
branch: gh-pages
folder: doc/html
- id: release-files
name: Create release manifest
run: |
# Github Artifacts strip executable permissions so it has to be set again
chmod 755 release_manifest
# Create a new release manifest
./release_manifest add *.json
toUpload=$(./release_manifest files-to-upload)
delimiter=EOF-$(uuidgen)
cat <<EOF >> $GITHUB_OUTPUT
result<<$delimiter
$toUpload
$delimiter
EOF
echo "version=$(./release_manifest version)" >> $GITHUB_OUTPUT
working-directory: release-staging
- id: release
name: Create pre-release
uses: softprops/action-gh-release@v0.1.15
with:
prerelease: true
files: ${{ steps.release-files.outputs.result }}
tag_name: ${{ steps.release-files.outputs.version }}
fail_on_unmatched_files: true
target_commitish: ${{ github.event.after }}
body: |
Continuous delivery for commit ${{ github.event.after }}