Skip to content

Commit 0699bb5

Browse files
Update CI runner images and deprecated actions (#317)
The ubuntu-20.04 runner image was retired by GitHub in April 2025, so all CI jobs queued forever waiting for a runner. The Try PureScript server droplet has been upgraded in place to Ubuntu 24.04, so the server build job now targets ubuntu-24.04 to keep the produced binary glibc-compatible with the deployment host. Also: - actions/checkout v2 -> v4 - actions/cache v2 -> v4 - actions/setup-node v2 -> v4, pinned to Node 20 - actions/upload-artifact and download-artifact v2 -> v4 (v2 is fully deprecated and errors out) - haskell/actions/setup v1 (archived) -> haskell-actions/setup v2 - softprops/action-gh-release v1 -> v2 - stack 2.5.1 -> latest (the lts-20.9 resolver still pins GHC and all dependencies) - Only the server job carries the "must match the server's Ubuntu" comment; the client and release jobs produce OS-independent artifacts and use ubuntu-latest. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent c41dfbc commit 0699bb5

1 file changed

Lines changed: 16 additions & 20 deletions

File tree

.github/workflows/ci.yml

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,18 @@ jobs:
1818
# Note that this must be kept in sync with the version of Ubuntu which the
1919
# Try PureScript server is running, otherwise the server binary may fail to
2020
# run.
21-
runs-on: ubuntu-20.04
21+
runs-on: ubuntu-24.04
2222
steps:
23-
- uses: actions/checkout@v2
23+
- uses: actions/checkout@v4
2424

25-
- uses: haskell/actions/setup@v1
25+
- uses: haskell-actions/setup@v2
2626
with:
2727
enable-stack: true
28-
stack-version: "2.5.1"
28+
stack-version: "latest"
2929
stack-no-global: true
3030

3131
- name: Cache dependencies
32-
uses: actions/cache@v2
32+
uses: actions/cache@v4
3333
with:
3434
path: ~/.stack
3535
key: ${{ runner.os }}-stack-${{ hashFiles('stack.yaml.lock') }}-${{ hashFiles('trypurescript.cabal') }}
@@ -48,7 +48,7 @@ jobs:
4848
tar czf ${{ env.SERVER_ASSET }}.tar.gz -C ${{ env.SERVER_ASSET }}/ .
4949
5050
- name: Persist server assets
51-
uses: actions/upload-artifact@v2
51+
uses: actions/upload-artifact@v4
5252
if: github.event_name == 'release'
5353
with:
5454
name: ${{ env.SERVER_ASSET }}.tar.gz
@@ -57,13 +57,12 @@ jobs:
5757

5858
build_client:
5959
name: Build client
60-
# Note that this must be kept in sync with the version of Ubuntu which the
61-
# Try PureScript server is running, otherwise the server binary may fail to
62-
# run.
63-
runs-on: ubuntu-20.04
60+
runs-on: ubuntu-latest
6461
steps:
65-
- uses: actions/checkout@v2
66-
- uses: actions/setup-node@v2
62+
- uses: actions/checkout@v4
63+
- uses: actions/setup-node@v4
64+
with:
65+
node-version: "20"
6766

6867
- name: Build client code
6968
run: |
@@ -95,7 +94,7 @@ jobs:
9594
tar czf ${{ env.CLIENT_ASSET }}.tar.gz -C ${{ env.CLIENT_ASSET }}/ .
9695
9796
- name: Persist client assets
98-
uses: actions/upload-artifact@v2
97+
uses: actions/upload-artifact@v4
9998
if: github.event_name == 'release'
10099
with:
101100
name: ${{ env.CLIENT_ASSET }}.tar.gz
@@ -104,10 +103,7 @@ jobs:
104103

105104
release:
106105
name: Release
107-
# Note that this must be kept in sync with the version of Ubuntu which the
108-
# Try PureScript server is running, otherwise the server binary may fail to
109-
# run.
110-
runs-on: ubuntu-20.04
106+
runs-on: ubuntu-latest
111107
if: github.event_name == 'release'
112108
env:
113109
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -116,17 +112,17 @@ jobs:
116112
- build_client
117113
steps:
118114
- name: Retrieve server assets
119-
uses: actions/download-artifact@v2
115+
uses: actions/download-artifact@v4
120116
with:
121117
name: ${{ env.SERVER_ASSET }}.tar.gz
122118

123119
- name: Retrieve client assets
124-
uses: actions/download-artifact@v2
120+
uses: actions/download-artifact@v4
125121
with:
126122
name: ${{ env.CLIENT_ASSET }}.tar.gz
127123

128124
- name: Upload server and client assets
129-
uses: softprops/action-gh-release@v1
125+
uses: softprops/action-gh-release@v2
130126
with:
131127
files: |
132128
${{ env.SERVER_ASSET }}.tar.gz

0 commit comments

Comments
 (0)