File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ name : prepare release artifacts
2+
3+ on : [push, pull_request, workflow_dispatch]
4+
5+ jobs :
6+ sdist :
7+ runs-on : ubuntu-latest
8+ outputs :
9+ sdist-artifact-id : ${{ steps.upload-sdist.outputs.artifact-id }}
10+
11+ steps :
12+ - uses : haskell/ghcup-setup@v1
13+ - run : ghcup install ghc --set latest
14+
15+ - uses : actions/checkout@v6
16+
17+ - run : autoreconf -Wall
18+ - run : cabal check
19+ - run : cabal sdist
20+
21+ - name : upload sdist
22+ id : upload-sdist
23+ uses : actions/upload-artifact@v7
24+ with :
25+ name : sdist
26+ path : dist-newstyle/sdist/*.tar.gz
27+ if-no-files-found : error
28+ retention-days : 90
29+
30+ smoketest :
31+ needs : sdist
32+ runs-on : ${{ matrix.os }}
33+ strategy :
34+ fail-fast : false
35+ matrix :
36+ os : [ubuntu-latest, macos-latest, windows-latest]
37+ steps :
38+ - name : download sdist
39+ uses : actions/download-artifact@v7
40+ with :
41+ artifact-ids : ${{ needs.sdist.outputs.sdist-artifact-id }}
42+
43+ - name : extract sdist
44+ shell : bash
45+ run : |
46+ ls -la
47+ tar -xzf *.tar.gz --strip-components=1
48+ chmod +x ./configure
49+
50+ - name : configure smoketest
51+ shell : bash
52+ run : ./configure
53+
54+ - name : upload config.log
55+ uses : actions/upload-artifact@v7
56+ with :
57+ name : ${{ matrix.os }}.config.log
58+ path : ./config.log
59+ if-no-files-found : error
60+ retention-days : 90
61+
62+ - name : job summary
63+ shell : bash
64+ run : |
65+ echo '### config.log (`${{ matrix.os }}`)' >> $GITHUB_STEP_SUMMARY
66+ echo '```' >> $GITHUB_STEP_SUMMARY
67+ cat config.log >> $GITHUB_STEP_SUMMARY
68+ echo '```' >> $GITHUB_STEP_SUMMARY
Original file line number Diff line number Diff line change @@ -29,3 +29,19 @@ autoconf -i
2929
3030(WARNING: ` git clean -fxd ` will delete all untracked files in the
3131repo)
32+
33+ To make the release process more observable and less dependent on the system
34+ of the maintainer, there's a workflow creating an sdist.
35+
36+ This sdist ought to be generated as follows:
37+ - navigate to the workflow run created for the commit you want to generate an
38+ sdist for. Or, if none was created automatically then create one by navigating
39+ to the Actions tab, selecting the "prepare release artifacts" workflow, and launching
40+ a run using the "` workflow_dispatch ` event trigger" that you will find there.
41+ - navigate to the "prepare release artifacts" job group in the github UI
42+ - carefully sanity check the output of the "smoketest" in github UI.
43+ These can also be downloaded as an artifact for local inspection. A sanity check
44+ would e.g. entail look at whether ` posix_spawn.* ` symbols are recognised and
45+ configured correctly.
46+ - afterwards, download the sdist from the release page by scrolling all the way down,
47+ then downloading the ` sdist ` . Upload it as a candidate and proceed as usual.
You can’t perform that action at this time.
0 commit comments