Skip to content

Commit 55e3ab9

Browse files
JassobThe1Penguin
authored andcommitted
chore(ci): trim haskell-ci
We probably don't need even half of all steps and stuffs in the old workflow. This commit cleans away a lot.
1 parent 88a7ba4 commit 55e3ab9

File tree

2 files changed

+20
-170
lines changed

2 files changed

+20
-170
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 19 additions & 169 deletions
Original file line numberDiff line numberDiff line change
@@ -1,189 +1,39 @@
1-
# This GitHub workflow config has been generated by a script via
2-
#
3-
# haskell-ci 'github' 'mat-chalmers.cabal'
4-
#
5-
# To regenerate the script (for example after adjusting tested-with) run
6-
#
7-
# haskell-ci regenerate
8-
#
9-
# For more information, see https://github.com/haskell-CI/haskell-ci
10-
#
11-
# version: 0.16.6
12-
#
13-
# REGENDATA ("0.16.6",["github","mat-chalmers.cabal"])
14-
#
15-
name: Haskell-CI
1+
name: review
162
on:
17-
- push
183
- pull_request
194
jobs:
20-
linux:
21-
name: Haskell-CI - Linux - ${{ matrix.compiler }}
5+
check:
6+
name: Compile and test
227
runs-on: ubuntu-20.04
23-
timeout-minutes:
24-
60
25-
container:
26-
image: buildpack-deps:bionic
27-
continue-on-error: ${{ matrix.allow-failure }}
28-
strategy:
29-
matrix:
30-
include:
31-
- compiler: ghc-9.4.5
32-
compilerKind: ghc
33-
compilerVersion: 9.4.5
34-
setup-method: ghcup
35-
allow-failure: false
36-
fail-fast: false
8+
timeout-minutes: 60
379
steps:
38-
- name: apt
39-
run: |
40-
apt-get update
41-
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
42-
mkdir -p "$HOME/.ghcup/bin"
43-
curl -sL https://downloads.haskell.org/ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
44-
chmod a+x "$HOME/.ghcup/bin/ghcup"
45-
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
46-
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
47-
env:
48-
HCKIND: ${{ matrix.compilerKind }}
49-
HCNAME: ${{ matrix.compiler }}
50-
HCVER: ${{ matrix.compilerVersion }}
51-
- name: Set PATH and environment variables
52-
run: |
53-
echo "$HOME/.cabal/bin" >> $GITHUB_PATH
54-
echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
55-
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
56-
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
57-
HCDIR=/opt/$HCKIND/$HCVER
58-
HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
59-
echo "HC=$HC" >> "$GITHUB_ENV"
60-
echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
61-
echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
62-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
63-
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
64-
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
65-
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
66-
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
67-
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
68-
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
69-
echo "GHCJSARITH=0" >> "$GITHUB_ENV"
70-
env:
71-
HCKIND: ${{ matrix.compilerKind }}
72-
HCNAME: ${{ matrix.compiler }}
73-
HCVER: ${{ matrix.compilerVersion }}
74-
- name: env
75-
run: |
76-
env
77-
- name: write cabal config
78-
run: |
79-
mkdir -p $CABAL_DIR
80-
cat >> $CABAL_CONFIG <<EOF
81-
remote-build-reporting: anonymous
82-
write-ghc-environment-files: never
83-
remote-repo-cache: $CABAL_DIR/packages
84-
logs-dir: $CABAL_DIR/logs
85-
world-file: $CABAL_DIR/world
86-
extra-prog-path: $CABAL_DIR/bin
87-
symlink-bindir: $CABAL_DIR/bin
88-
installdir: $CABAL_DIR/bin
89-
build-summary: $CABAL_DIR/logs/build.log
90-
store-dir: $CABAL_DIR/store
91-
install-dirs user
92-
prefix: $CABAL_DIR
93-
repository hackage.haskell.org
94-
url: http://hackage.haskell.org/
95-
EOF
96-
cat >> $CABAL_CONFIG <<EOF
97-
program-default-options
98-
ghc-options: $GHCJOBS +RTS -M3G -RTS
99-
EOF
100-
cat $CABAL_CONFIG
101-
- name: versions
102-
run: |
103-
$HC --version || true
104-
$HC --print-project-git-commit-id || true
105-
$CABAL --version || true
10+
- uses: haskell-actions/setup@v2
11+
with:
12+
ghc-version: '9.4.5' # Exact version of ghc to use
13+
10614
- name: update cabal index
10715
run: |
108-
$CABAL v2-update -v
109-
- name: install cabal-plan
110-
run: |
111-
mkdir -p $HOME/.cabal/bin
112-
curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.7.3.0/cabal-plan-0.7.3.0-x86_64-linux.xz > cabal-plan.xz
113-
echo 'f62ccb2971567a5f638f2005ad3173dba14693a45154c1508645c52289714cb2 cabal-plan.xz' | sha256sum -c -
114-
xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
115-
rm -f cabal-plan.xz
116-
chmod a+x $HOME/.cabal/bin/cabal-plan
117-
cabal-plan --version
16+
cabal v2-update -v
17+
11818
- name: checkout
11919
uses: actions/checkout@v3
120-
with:
121-
path: source
122-
- name: initial cabal.project for sdist
123-
run: |
124-
touch cabal.project
125-
echo "packages: $GITHUB_WORKSPACE/source/." >> cabal.project
126-
cat cabal.project
127-
- name: sdist
128-
run: |
129-
mkdir -p sdist
130-
$CABAL sdist all --output-dir $GITHUB_WORKSPACE/sdist
131-
- name: unpack
132-
run: |
133-
mkdir -p unpacked
134-
find sdist -maxdepth 1 -type f -name '*.tar.gz' -exec tar -C $GITHUB_WORKSPACE/unpacked -xzvf {} \;
135-
- name: generate cabal.project
136-
run: |
137-
PKGDIR_mat_chalmers="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/mat-chalmers-[0-9.]*')"
138-
echo "PKGDIR_mat_chalmers=${PKGDIR_mat_chalmers}" >> "$GITHUB_ENV"
139-
rm -f cabal.project cabal.project.local
140-
touch cabal.project
141-
touch cabal.project.local
142-
echo "packages: ${PKGDIR_mat_chalmers}" >> cabal.project
143-
echo "package mat-chalmers" >> cabal.project
144-
echo " ghc-options: -Werror=missing-methods" >> cabal.project
145-
cat >> cabal.project <<EOF
146-
EOF
147-
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(mat-chalmers)$/; }' >> cabal.project.local
148-
cat cabal.project
149-
cat cabal.project.local
150-
- name: dump install plan
151-
run: |
152-
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
153-
cabal-plan
20+
15421
- name: restore cache
15522
uses: actions/cache/restore@v3
15623
with:
157-
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
24+
key: ${{ runner.os }}-${{ github.sha }}
15825
path: ~/.cabal/store
159-
restore-keys: ${{ runner.os }}-${{ matrix.compiler }}-
26+
restore-keys: ${{ runner.os }}-
27+
16028
- name: install dependencies
161-
run: |
162-
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --dependencies-only -j2 all
163-
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dependencies-only -j2 all
164-
- name: build w/o tests
165-
run: |
166-
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
167-
- name: build
168-
run: |
169-
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --write-ghc-environment-files=always
29+
run: cabal v2-build -v --enable-tests all --dependencies-only -j2 all
30+
17031
- name: tests
171-
run: |
172-
$CABAL v2-test $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --test-show-details=direct
173-
- name: cabal check
174-
run: |
175-
cd ${PKGDIR_mat_chalmers} || false
176-
${CABAL} -vnormal check
177-
- name: haddock
178-
run: |
179-
$CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
180-
- name: unconstrained build
181-
run: |
182-
rm -f cabal.project.local
183-
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
32+
run: cabal v2-test --enable-tests all --test-show-details=direct
33+
18434
- name: save cache
18535
uses: actions/cache/save@v3
18636
if: always()
18737
with:
188-
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
38+
key: ${{ runner.os }}-${{ github.sha }}
18939
path: ~/.cabal/store

mat-chalmers.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ library
4242
, http-client-tls >= 0.3.6.1 && <= 0.4
4343
, logging-effect >= 1.4.0 && <= 2.0
4444
, microlens-platform >= 0.4.3.3 && < 0.5
45-
, lucid >= 2
45+
, lucid >= 2 && < 3
4646
, mtl == 2.2.2
4747
, old-locale == 1.0.0.7
4848
, prettyprinter == 1.7.1

0 commit comments

Comments
 (0)