Build mwc-random with both random-1.2 and 1.3 #101
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
# Trigger the workflow on push or pull request, but only for the master branch | |
on: | |
pull_request: | |
push: | |
branches: [master] | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
cabal: | |
name: ${{ matrix.os }} / ghc ${{ matrix.ghc }} [${{ matrix.random }}] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
### -- Linux -- | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "8.0.2", random: "1.2" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "8.2.2", random: "1.2" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "8.4.4", random: "1.2" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "8.6.5", random: "1.2" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "8.8.4", random: "1.2" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "8.10.7", random: "1.2" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "9.0.2", random: "1.2" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "9.2.8", random: "1.2" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "9.4.8", random: "1.2" } | |
- { cabal: "3.12", os: ubuntu-latest, ghc: "9.6.6", random: "1.2" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "9.8.4", random: "1.2" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "9.10.1", random: "1.2" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "9.12.1", random: "1.2" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "8.0.2", random: "1.3" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "8.2.2", random: "1.3" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "8.4.4", random: "1.3" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "8.6.5", random: "1.3" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "8.8.4", random: "1.3" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "8.10.7", random: "1.3" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "9.0.2", random: "1.3" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "9.2.8", random: "1.3" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "9.4.8", random: "1.3" } | |
- { cabal: "3.12", os: ubuntu-latest, ghc: "9.6.6", random: "1.3" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "9.8.4", random: "1.3" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "9.10.1", random: "1.3" } | |
# - { cabal: "3.12", os: ubuntu-latest, ghc: "9.12.1", random: "1.3" } | |
# ## -- Win -- | |
# - { cabal: "3.12", os: windows-latest, ghc: "8.4.4" } | |
# - { cabal: "3.12", os: windows-latest, ghc: "8.6.5" } | |
# - { cabal: "3.12", os: windows-latest, ghc: "8.8.4" } | |
# - { cabal: "3.12", os: windows-latest, ghc: "8.10.7" } | |
# - { cabal: "3.12", os: windows-latest, ghc: "9.0.2" } | |
# - { cabal: "3.12", os: windows-latest, ghc: "9.2.8" } | |
# - { cabal: "3.12", os: windows-latest, ghc: "9.4.8" } | |
# - { cabal: "3.12", os: windows-latest, ghc: "9.6.6" } | |
# - { cabal: "3.12", os: windows-latest, ghc: "9.8.4" } | |
# - { cabal: "3.12", os: windows-latest, ghc: "9.10.1" } | |
# - { cabal: "3.12", os: windows-latest, ghc: "9.12.1" } | |
# # MacOS | |
# - { cabal: "3.12", os: macOS-13, ghc: "8.4.4" } | |
# - { cabal: "3.12", os: macOS-13, ghc: "8.6.5" } | |
# - { cabal: "3.12", os: macOS-13, ghc: "8.8.4" } | |
# - { cabal: "3.12", os: macOS-13, ghc: "8.10.7" } | |
# - { cabal: "3.12", os: macOS-13, ghc: "9.0.2" } | |
# - { cabal: "3.12", os: macOS-latest, ghc: "9.2.8" } | |
# - { cabal: "3.12", os: macOS-latest, ghc: "9.4.8" } | |
# - { cabal: "3.12", os: macOS-latest, ghc: "9.6.6" } | |
# - { cabal: "3.12", os: macOS-latest, ghc: "9.8.4" } | |
# - { cabal: "3.12", os: macOS-latest, ghc: "9.10.1" } | |
# - { cabal: "3.12", os: macOS-latest, ghc: "9.12.1" } | |
fail-fast: false | |
steps: | |
# ---------------- | |
- name: "Dummy" | |
run: | | |
echo "Cabal " ${{ matrix.cabal }} | |
echo "OS " ${{ matrix.os }} | |
echo "GHC " ${{ matrix.ghc }} | |
echo "random" ${{ matrix.random }} | |
# ---------------- | |
- uses: actions/checkout@v4 | |
# ---------------- | |
- uses: haskell-actions/setup@v2 | |
id: setup-haskell-cabal | |
name: Setup Haskell | |
with: | |
ghc-version: ${{ matrix.ghc }} | |
cabal-version: ${{ matrix.cabal }} | |
# ---------------- | |
- uses: actions/cache@v3 | |
name: Cache ~/.cabal/store | |
with: | |
path: ${{ steps.setup-haskell-cabal.outputs.cabal-store }} | |
key: ${{ runner.os }}-${{ matrix.ghc }}--${{ github.Shah }} | |
# ---------------- | |
- name: "Install PAPI" | |
run: | | |
sudo apt-get install -y libpapi-dev | |
echo FLAG_PAPI=-fBenchPAPI >> "$GITHUB_ENV" | |
if: matrix.os == 'ubuntu-latest' | |
# ---------------- | |
- name: Versions | |
run: | | |
cabal -V | |
ghc -V | |
# ---------------- | |
- name: Make sdist | |
run: | | |
mkdir sdist | |
cabal sdist -o sdist | |
# ---------------- | |
- name: Unpack | |
run: | | |
mkdir unpacked | |
tar -C unpacked -xzf sdist/mwc-random*tar.gz | |
ls unpacked | |
# ---------------- | |
- name: Configure | |
working-directory: ./unpacked | |
run: | | |
pwd | |
ls | |
echo "packages: mwc-random*/mwc-random.cabal" > cabal.project | |
#-- | |
if [ "${{ matrix.skip-test }}" == "" ]; then | |
echo "tests: True" >> cabal.project | |
else | |
echo "tests: False" >> cabal.project | |
fi | |
#-- | |
if [ "${{ matrix.skip-bench }}" == "" ]; then | |
echo "benchmarks: True" >> cabal.project | |
echo "benchmark-options: -l" >> cabal.project | |
else | |
echo "benchmarks: False" >> cabal.project | |
fi | |
#-- | |
if [ ${{ matrix.random }} == "1.2" ]; then | |
echo "constraints: random >=1.2 && <1.3" >> cabal.project | |
elif [ ${{ matrix.random }} == "1.3" ]; then | |
echo "constraints: random >=1.3 && <1.4" >> cabal.project | |
echo "allow-newer: QuickCheck-2.15.0.1:random" >> cabal.project | |
fi | |
# | |
cabal configure $FLAG_PAPI | |
cabal freeze | |
cat cabal.project | |
echo ======================================== | |
cat cabal.project.freeze | |
# ---------------- | |
- name: cabal check | |
working-directory: ./unpacked | |
run: | | |
pwd | |
for nm in mwc-random-*; do | |
if [ -d "$nm" ]; then | |
cd "$nm" | |
cabal -vnormal check | |
cd .. | |
fi | |
done | |
# ---------------- | |
- name: Build | |
working-directory: ./unpacked | |
run: | | |
pwd | |
cabal build all --write-ghc-environment-files=always | |
# ---------------- | |
- name: Test | |
working-directory: ./unpacked | |
run: | | |
pwd | |
cabal test all | |
# ---------------- | |
- name: Bench | |
working-directory: ./unpacked | |
run: | | |
pwd | |
cabal bench all |