Skip to content

bump: actions/checkout from 5 to 6 (#144) #229

bump: actions/checkout from 5 to 6 (#144)

bump: actions/checkout from 5 to 6 (#144) #229

Workflow file for this run

name: Haskell CI
on:
push:
branches: '**'
pull_request:
branches-ignore: '**'
# Stop other CI in the same branch on new run:
concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true
# Some Haskell tools are preinstalled in: `/usr/local/.ghcup`.
# There's a symlink: `~/.ghcup` -> `/usr/local/.ghcup`.
jobs:
build:
name: Build (GHC ${{ matrix.ghc-version }} on ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
ghc-version: ['9.8.4']
# include:
# - os: windows-latest
# ghc-version: '9.8'
# - os: macos-latest
# ghc-version: '9.8'
steps:
- uses: actions/checkout@v6
- name: Setup GHC
uses: ./.github/actions/setup-ghc
with:
ghc-version: ${{ matrix.ghc-version }}
- name: Build the library
uses: ./.github/actions/build
test:
needs: build
name: Test (GHC ${{ matrix.ghc-version }} on ${{ matrix.os }})
runs-on: ${{ matrix.os }}
# TODO: DRY
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
ghc-version: ['9.8.4']
# include:
# - os: windows-latest
# ghc-version: '9.8'
# - os: macos-latest
# ghc-version: '9.8'
steps:
- uses: actions/checkout@v6
- name: Restore GHC
uses: ./.github/actions/setup-ghc
with:
ghc-version: ${{ matrix.ghc-version }}
- name: Restore the library build artifacts
uses: ./.github/actions/build
- name: Build check
# As a test, build all the components in `ac-library-hs.cabal` (TODO: automate this)
run: |
cabal build ac-library-hs
cabal build ac-library-hs:example-lazy-segtree
cabal build ac-library-hs:ac-library-hs-benchmark
- name: Run tests
run: cabal test all
- name: Check cabal file
run: cabal check
# - name: Build documentation
# run:
# cabal haddock all --disable-documentation
# # --disable-documentation disables building documentation for dependencies.
# # The package's own documentation is still built,
# # yet contains no links to the documentation of the dependencies.
doctest:
needs: build
name: Doctest (GHC ${{ matrix.ghc-version }} on ${{ matrix.os }})
runs-on: ${{ matrix.os }}
# TODO: DRY
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
ghc-version: ['9.8.4']
# include:
# - os: windows-latest
# ghc-version: '9.8'
# - os: macos-latest
# ghc-version: '9.8'
steps:
- uses: actions/checkout@v6
- name: Restore GHC
uses: ./.github/actions/setup-ghc
with:
ghc-version: ${{ matrix.ghc-version }}
- name: Restore the library build artifacts
uses: ./.github/actions/build
- name: Run doctest
run: |
cabal path
cabal install doctest
which doctest # `~/.local/bin` (in PATH by default)
cabal repl --with-ghc=doctest --repl-options='-w -Wdefault'
verify:
needs: build
name: Verify (GHC 9.8.4 on ubuntu-latest)
runs-on: ubuntu-latest
env:
ghc-version: '9.8.4'
num-parallel: '15'
strategy:
fail-fast: false
matrix:
parallel-index: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
ghc-version: ['9.8.4']
steps:
- uses: actions/checkout@v6
- name: Restore GHC
uses: ./.github/actions/setup-ghc
with:
ghc-version: ${{ matrix.ghc-version }}
- name: Restore the library build artifacts
uses: ./.github/actions/build
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
- name: Install oj-verify
run: pip3 install -U online-judge-verify-helper
# TODO: cache `~/.cache/online-judge-tools/library-checker-problems/`
# TODO: cache `.verify-helper/cache/`
- name: Run oj-verify
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# YUKICODER_TOKEN: ${{ secrets.YUKICODER_TOKEN }}
# GH_PAT: ${{ secrets.GH_PAT }}
working-directory: verify
run: |
files="$(find app/ -type f | awk 'NR % ${{ env.num-parallel }} == ${{ matrix.parallel-index }}')"
echo 'target files:'
for f in $files ; do
echo "- $f"
done
oj-verify run $files --tle 30 -j $(nproc)