Add bullseye variant of 9.6.6 images #131
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: Validate Debian | |
on: | |
pull_request: | |
branches: | |
- master | |
paths: | |
- '**/bullseye/Dockerfile' | |
- '**/buster/Dockerfile' | |
- '**/slim-bullseye/Dockerfile' | |
- '**/slim-buster/Dockerfile' | |
- '.github/workflows/debian.yml' | |
# See: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency. | |
concurrency: | |
group: ${{ github.head_ref }}-${{ github.workflow }} | |
cancel-in-progress: true | |
jobs: | |
build-smoke-test: | |
timeout-minutes: 30 | |
runs-on: ubuntu-latest | |
name: ${{ matrix.ghc }}-${{ matrix.deb }} | |
strategy: | |
fail-fast: false | |
matrix: | |
ghc: ['9.10.1', '9.8.2', '9.6.6', '9.4.8', '9.2.8', '9.0.2' ] | |
deb: ['buster', 'slim-buster'] | |
include: | |
# bullseye (debian 11) | |
- ghc: '9.10.1' | |
ghc_minor: '9.10' | |
deb: 'slim-bullseye' | |
- ghc: '9.10.1' | |
ghc_minor: '9.10' | |
deb: 'bullseye' | |
- ghc: '9.6.6' | |
ghc_minor: '9.6' | |
deb: 'slim-bullseye' | |
- ghc: '9.6.6' | |
ghc_minor: '9.6' | |
deb: 'bullseye' | |
# buster (debian 10) | |
- ghc: '9.10.1' | |
ghc_minor: '9.10' | |
- ghc: '9.8.2' | |
ghc_minor: '9.8' | |
- ghc: '9.6.6' | |
ghc_minor: '9.6' | |
- ghc: '9.4.8' | |
ghc_minor: '9.4' | |
- ghc: '9.2.8' | |
ghc_minor: '9.2' | |
- ghc: '9.0.2' | |
ghc_minor: '9.0' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: build + smoke test [${{ matrix.ghc }}] | |
uses: nick-invision/[email protected] | |
with: | |
timeout_minutes: 8 | |
max_attempts: 3 | |
command: | | |
docker build --pull \ | |
-t haskell:${{ matrix.ghc }}-${{ matrix.deb }} \ | |
${{ matrix.ghc_minor }}/${{ matrix.deb }} | |
- uses: actions/checkout@v4 | |
with: | |
repository: docker-library/official-images | |
path: official-images | |
- name: run official-images tests | |
run: ./official-images/test/run.sh haskell:${{ matrix.ghc }}-${{ matrix.deb }} | |
emulated-architecture-tests: | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
name: ${{ matrix.arch }}-${{ matrix.ghc }}-${{ matrix.deb }} | |
strategy: | |
fail-fast: false | |
matrix: | |
ghc: ['9.0.2', '9.2.8', '9.4.8', '9.6.6', '9.8.2', '9.10.1'] | |
# uraimo/run-on-arch-action does not support debian slim variants | |
deb: ['buster'] | |
arch: ['aarch64'] | |
include: | |
# bullseye (debian 11) | |
- ghc: '9.10.1' | |
ghc_minor: '9.10' | |
deb: 'bullseye' | |
arch: 'aarch64' | |
- ghc: '9.6.6' | |
ghc_minor: '9.6' | |
deb: 'bullseye' | |
arch: 'aarch64' | |
# buster (debian 10) | |
- ghc: '9.10.1' | |
ghc_minor: '9.10' | |
- ghc: '9.8.2' | |
ghc_minor: '9.8' | |
- ghc: '9.6.6' | |
ghc_minor: '9.6' | |
- ghc: '9.4.8' | |
ghc_minor: '9.4' | |
- ghc: '9.2.8' | |
ghc_minor: '9.2' | |
- ghc: '9.0.2' | |
ghc_minor: '9.0' | |
- arch: aarch64 | |
docker_platform: arm64 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: docker build [ ${{ matrix.arch }} ${{ matrix.ghc }}] | |
uses: uraimo/[email protected] | |
with: | |
arch: ${{ matrix.arch }} | |
distro: ${{ matrix.deb }} | |
githubToken: ${{ github.token }} | |
install: | | |
apt-get update | |
apt-get install -y curl | |
curl -fsSL https://get.docker.com | sh | |
run: | | |
docker build --pull \ | |
--platform "linux/${{ matrix.docker_platform }}" \ | |
-t haskell:${{ matrix.ghc }}-${{ matrix.deb }} \ | |
${{ matrix.ghc_minor }}/${{ matrix.deb }} | |
echo 'testing..' | |
docker run \ | |
--platform "linux/${{ matrix.docker_platform }}" \ | |
-t haskell:${{ matrix.ghc }}-${{ matrix.deb }} \ | |
bash -c "cabal update && cabal install --lib primitive" | |
docker run \ | |
--platform "linux/${{ matrix.docker_platform }}" \ | |
-t haskell:${{ matrix.ghc }}-${{ matrix.deb }} \ | |
bash -c "echo | ghci" | |
# Running the official tests does not work as we need to hardcode the plaform due to the emulated nature. | |
# This solution is fairly hacky, but gets us most of benefit of the official tests. |