Skip to content

Commit 331f488

Browse files
committed
Update release CI
1 parent cfae313 commit 331f488

File tree

1 file changed

+49
-51
lines changed

1 file changed

+49
-51
lines changed

.github/workflows/integration-tests.yml

Lines changed: 49 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,11 @@
11
name: Integration tests
22

33
on:
4-
pull_request:
54
push:
6-
branches:
7-
- master
8-
- stable
9-
- rc/**
105
tags:
116
- '**'
127
workflow_dispatch:
138

14-
# Stack will use the value of the GH_TOKEN environment variable to authenticate
15-
# its requests of the GitHub REST API, providing a higher request rate limit.
16-
env:
17-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18-
199
# As of 15 March 2025, ubuntu-latest and windows-latest come with Stack 3.3.1
2010
# and GHC 9.12.1. However, macos-13 and macos-latest do not come with Haskell
2111
# tools. windows-latest comes with NSIS 3.10, for which the default value of the
@@ -32,19 +22,12 @@ jobs:
3222
fail-fast: false
3323
matrix:
3424
include:
25+
- os: ubuntu-22.04-arm
26+
release-args: "--alpine --stack-args --docker-stack-exe=image"
27+
cache-bust: "2025-02-07b"
3528
- os: ubuntu-latest
3629
release-args: "--alpine"
3730
cache-bust: "2024-05-17"
38-
# On public preview since 16 January 2025
39-
- os: ubuntu-24.04-arm
40-
# Stack's project-level configuration (stack.yaml) specifies the
41-
# multi-architecture (including Linux/Aarch64) Docker image published
42-
# by Oliver Benz (@benz0li, on GitHub). That image comes with
43-
# Stack 3.3.1. (Note that the online documentation for
44-
# '--docker-stack-exe image' specifies that the host Stack and image
45-
# Stack must have the same version number.)
46-
release-args: "--alpine --stack-args --docker-stack-exe=image"
47-
cache-bust: "2025-02-07b"
4831
- os: windows-latest
4932
release-args: ""
5033
cache-bust: "2025-04-06"
@@ -78,7 +61,7 @@ jobs:
7861
run: |
7962
set -ex
8063
81-
if [[ "${{ matrix.os }}" == "ubuntu-24.04-arm" || "${{ matrix.os }}" == "macos-13" || "${{ matrix.os }}" == "macos-latest" ]]
64+
if [[ "${{ matrix.os }}" == "ubuntu-22.04-arm" || "${{ matrix.os }}" == "macos-13" || "${{ matrix.os }}" == "macos-latest" ]]
8265
then
8366
# ubuntu-24.04-arm, macos-13 and macos-latest do not include Haskell
8467
# tools as at 2025-03-15.
@@ -157,8 +140,7 @@ jobs:
157140
df -h
158141
159142
# Skip checks for Linux/AArch64, given checks for Linux/x86-64
160-
if [[ "${{ matrix.os }}" != "ubuntu-24.04-arm" ]]
161-
then
143+
if [[ "${{ matrix.os }}" != "ubuntu-22.04-arm" ]] ; then
162144
# Do this in the same step as installing deps to get relevant env var modifications
163145
stack etc/scripts/release.hs check ${{ matrix.release-args }}
164146
fi
@@ -179,6 +161,45 @@ jobs:
179161
name: ${{ runner.os }}-${{ runner.arch }}
180162
path: _release/stack-*
181163

164+
freebsd-x64:
165+
name: FreeBSD X64
166+
runs-on: [self-hosted, FreeBSD, X64]
167+
steps:
168+
- name: Checkout code
169+
uses: actions/checkout@v4
170+
with:
171+
submodules: 'true'
172+
173+
- name: Install prerequisites
174+
run: |
175+
sudo sed -i.bak -e 's/quarterly/latest/' /etc/pkg/FreeBSD.conf
176+
sudo pkg install -y ghc gcc curl git bash misc/compat10x misc/compat11x misc/compat12x gmake libiconv devel/stack
177+
sudo tzsetup Etc/GMT
178+
sudo adjkerntz -a
179+
180+
- uses: haskell/ghcup-setup@v1
181+
182+
- name: Install stack ghcup hook
183+
run: |
184+
set -eux
185+
ghcup install stack --set latest
186+
export STACK_ROOT="${GITHUB_WORKSPACE}"/.stack
187+
mkdir -p $STACK_ROOT/hooks/
188+
curl https://raw.githubusercontent.com/haskell/ghcup-hs/master/scripts/hooks/stack/ghc-install.sh > $STACK_ROOT/hooks/ghc-install.sh
189+
chmod +x $STACK_ROOT/hooks/ghc-install.sh
190+
stack config set system-ghc false --global
191+
192+
- name: Run build
193+
run: |
194+
export STACK_ROOT="${GITHUB_WORKSPACE}"/.stack
195+
export CABAL_DIR="$GITHUB_WORKSPACE/cabal"
196+
stack etc/scripts/release.hs build --allow-dirty
197+
- name: Upload bindist
198+
uses: actions/upload-artifact@v4
199+
with:
200+
name: FreeBSD-X64
201+
path: _release/stack-*
202+
182203
github-release:
183204
name: Create GitHub release
184205
permissions:
@@ -213,21 +234,21 @@ jobs:
213234
with:
214235
name: Linux-ARM64
215236
path: _release
237+
- name: Download FreeBSD/X64 artifact
238+
uses: actions/download-artifact@v4
239+
with:
240+
name: FreeBSD-X64
241+
path: _release
216242
- name: Hash and sign assets
217243
shell: bash
218-
env:
219-
RELEASE_SIGNING_KEY: ${{ secrets.RELEASE_SIGNING_KEY }}
220244
run: |
221245
set -e
222-
echo "$RELEASE_SIGNING_KEY"|gpg --import
223246
cd _release
224247
for asset in *; do
225248
shasum -a 256 "$asset" >"$asset.sha256"
226-
gpg --digest-algo=sha512 --detach-sig --armor -u 0x575159689BEFB442 "$asset"
227249
done
228250
- name: Create GitHub release (final)
229251
id: github_release_final
230-
if: "!startsWith(github.ref, 'refs/tags/rc/')"
231252
uses: ncipollo/[email protected]
232253
env:
233254
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -244,19 +265,7 @@ jobs:
244265
[INSERT CONTRIBUTORS]
245266
draft: true
246267
prerelease: false
247-
- name: Create GitHub release (release candidate)
248-
id: github_release_rc
249-
if: "startsWith(github.ref, 'refs/tags/rc/')"
250-
uses: ncipollo/[email protected]
251-
env:
252-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
253-
with:
254-
body: |
255-
**Changes since v[INSERT PREVIOUS VERSION]:**
256268

257-
[INSERT CHANGELOG]
258-
draft: true
259-
prerelease: true
260269
- name: Upload assets to GitHub release (final)
261270
if: "!startsWith(github.ref, 'refs/tags/rc/')"
262271
uses: xresloader/upload-to-github-release@v1
@@ -268,14 +277,3 @@ jobs:
268277
prerelease: false
269278
overwrite: true
270279
release_id: ${{ steps.github_release_final.outputs.id }}
271-
- name: Upload assets to GitHub release (release candidate)
272-
if: "startsWith(github.ref, 'refs/tags/rc/')"
273-
uses: xresloader/upload-to-github-release@v1
274-
env:
275-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
276-
with:
277-
file: "_release/*"
278-
draft: true
279-
prerelease: true
280-
overwrite: true
281-
release_id: ${{ steps.github_release_rc.outputs.id }}

0 commit comments

Comments
 (0)