aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/benchmark.yml58
-rw-r--r--.github/workflows/ci.yml52
-rw-r--r--.gitignore1
3 files changed, 59 insertions, 52 deletions
diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml
new file mode 100644
index 000000000..8b01d406f
--- /dev/null
+++ b/.github/workflows/benchmark.yml
@@ -0,0 +1,58 @@
+name: benchmarks
+
+on: workflow_dispatch
+
+permissions:
+ contents: read
+
+jobs:
+ benchmark:
+
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: true
+ matrix:
+ versions:
+ - ghc: '8.10.7'
+ cabal: '3.2'
+ - ghc: '9.2.2'
+ cabal: '3.6'
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Install cabal/ghc
+ run: |
+ ghcup install ghc --set ${{ matrix.versions.ghc }}
+ ghcup install cabal ${{ matrix.versions.cabal }}
+
+ # declare/restore cached things
+
+ - name: Cache cabal global package db
+ id: cabal-global
+ uses: actions/cache@v3
+ with:
+ path: |
+ ~/.cabal
+ key: benchmark-${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ secrets.CACHE_VERSION }}
+
+ - name: Cache cabal work
+ id: cabal-local
+ uses: actions/cache@v3
+ with:
+ path: |
+ dist-newstyle
+ key: benchmark-${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-local-${{ secrets.CACHE_VERSION }}
+
+ - name: Install dependencies
+ run: |
+ v2=$([ "${{ matrix.versions.cabal }}" = "2.2" ] && printf 'new' || printf 'v2')
+ cabal $v2-update
+ cabal $v2-build --dependencies-only --enable-optimization=1 --enable-benchmarks --disable-tests
+
+ - name: Build and test
+ run: |
+ v2=$([ "${{ matrix.versions.cabal }}" = "2.2" ] && printf 'new' || printf 'v2')
+ cabal $v2-build --enable-optimization=1 --enable-benchmarks --disable-tests 2>&1 | tee build.log
+ # fail if warnings in local build
+ ! grep -q ": *[Ww]arning:" build.log || exit 1
+ cabal $v2-bench --enable-optimization=1 --benchmark-options='--timeout=6 +RTS -T -RTS'
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6cf2d2226..5ab6ecd04 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -52,7 +52,7 @@ jobs:
testopts: '--test-option=--hide-successes --test-option=--ansi-tricks=false'
- ghc: '8.8.4'
cabal: '3.2'
- cabalopts: '-f-server'
+ cabalopts: '-f-server --enable-benchmarks'
testopts: '--test-option=--hide-successes --test-option=--ansi-tricks=false'
- ghc: '8.10.7'
cabal: '3.2'
@@ -191,53 +191,3 @@ jobs:
! grep -q ": *[Ww]arning:" build.log || exit 1
cabal v2-test --disable-optimization --test-option=--hide-successes --test-option=--ansi-tricks=false
- benchmark:
-
- runs-on: ubuntu-18.04
- strategy:
- fail-fast: true
- matrix:
- versions:
- - ghc: '8.10.7'
- cabal: '3.2'
- - ghc: '9.2.2'
- cabal: '3.6'
- steps:
- - uses: actions/checkout@v3
-
- - name: Install cabal/ghc
- run: |
- ghcup install ghc --set ${{ matrix.versions.ghc }}
- ghcup install cabal ${{ matrix.versions.cabal }}
-
- # declare/restore cached things
-
- - name: Cache cabal global package db
- id: cabal-global
- uses: actions/cache@v3
- with:
- path: |
- ~/.cabal
- key: benchmark-${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-global-${{ secrets.CACHE_VERSION }}
-
- - name: Cache cabal work
- id: cabal-local
- uses: actions/cache@v3
- with:
- path: |
- dist-newstyle
- key: benchmark-${{ runner.os }}-${{ matrix.versions.ghc }}-${{ matrix.versions.cabal }}-cabal-local-${{ secrets.CACHE_VERSION }}
-
- - name: Install dependencies
- run: |
- v2=$([ "${{ matrix.versions.cabal }}" = "2.2" ] && printf 'new' || printf 'v2')
- cabal $v2-update
- cabal $v2-build --dependencies-only --enable-optimization=1 --enable-benchmarks --disable-tests
-
- - name: Build and test
- run: |
- v2=$([ "${{ matrix.versions.cabal }}" = "2.2" ] && printf 'new' || printf 'v2')
- cabal $v2-build --enable-optimization=1 --enable-benchmarks --disable-tests 2>&1 | tee build.log
- # fail if warnings in local build
- ! grep -q ": *[Ww]arning:" build.log || exit 1
- cabal $v2-bench --enable-optimization=1 --benchmark-options='--timeout=6 +RTS -T -RTS'
diff --git a/.gitignore b/.gitignore
index 5bdcd2d5f..ed4d2b58f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,7 +10,6 @@
!.circleci/**
!.editorconfig
!.gitattributes
-!.github/**
!.gitignore
!.hlint.yaml
!.mailmap