👔 Only bind "/etc/passwd" if platform=="docker"
#187
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
# This workflow will test cpac | |
name: Test cpac | |
on: | |
push: | |
paths-ignore: | |
- README.rst | |
permissions: | |
packages: write | |
jobs: | |
set_docker_image: | |
outputs: | |
docker_image: ${{ steps.set_docker_image.outputs.docker_image }} | |
runs-on: ubuntu-latest | |
steps: | |
- id: set_docker_image | |
name: set tag name | |
run: | | |
DOCKER_IMAGE="ghcr.io/${{ github.repository }}/api-test" | |
DOCKER_IMAGE="${DOCKER_IMAGE@L}" | |
echo "docker_image=${DOCKER_IMAGE}" >> "${GITHUB_OUTPUT}" | |
build_dry_run_image: | |
needs: set_docker_image | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Docker Buildx | |
uses: docker/[email protected] | |
- name: Log in to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Clear up some space on runner | |
run: | | |
sudo rm -rf /usr/local/lib/android | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf /opt/ghc | |
sudo rm -rf "/usr/local/share/boost" | |
- name: Build and push | |
uses: docker/[email protected] | |
with: | |
context: . | |
file: ./.github/Dockerfiles/c-pac_api.${{ matrix.tag }}.Dockerfile | |
provenance: false | |
sbom: false | |
push: true | |
tags: | | |
${{ needs.set_docker_image.outputs.docker_image }}:${{ matrix.tag }} | |
strategy: | |
matrix: | |
tag: [latest, nightly] | |
test_cpac: | |
env: | |
APPTAINER_CACHEDIR: ${{ github.workspace }}/.apptainer/cache | |
APPTAINER_TMPDIR: ${{ github.workspace }}/.apptainer/tmp | |
needs: | |
- build_dry_run_image | |
- set_docker_image | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
apptainer: [1.0.0, 1.3.0] | |
go: [1.14] | |
platform: [apptainer, docker] | |
python: ['3.10', 3.11, 3.12] | |
tag: [latest, nightly] | |
exclude: | |
- platform: apptainer | |
python: 3.11 | |
- platform: apptainer | |
python: 3.12 | |
steps: | |
- name: Clear up some space on runner | |
run: | | |
sudo rm -rf /usr/local/lib/android | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf /opt/ghc | |
sudo rm -rf "/usr/local/share/boost" | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
cache: false | |
go-version: ${{ matrix.go }} | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install --upgrade pip setuptools wheel | |
run: python -m pip install --upgrade pip setuptools wheel | |
- name: Setup apptainer | |
if: ${{ matrix.platform == 'apptainer' }} | |
uses: eWaterCycle/setup-apptainer@v2 | |
with: | |
apptainer-version: ${{ matrix.apptainer }} | |
- name: Install cpac | |
run: cd $GITHUB_WORKSPACE && pip install -e ".[dev,testing,tsconcat]" | |
- name: Pull images | |
if: ${{ matrix.platform == 'apptainer' }} | |
run: | | |
mkdir -p ${{ env.APPTAINER_CACHEDIR }} | |
mkdir -p ${{ env.APPTAINER_TMPDIR }} | |
export APPTAINER_CACHEDIR=${{ env.APPTAINER_CACHEDIR }} | |
export SINGULARITY_CACHEDIR=${{ env.APPTAINER_CACHEDIR }} | |
export APPTAINER_TMPDIR=${{ env.APPTAINER_TMPDIR }} | |
export SINGULARITY_TMPDIR=${{ env.APPTAINER_TMPDIR }} | |
cpac --platform ${{ matrix.platform }} pull --image ${{ needs.set_docker_image.outputs.docker_image }} --tag ${{ matrix.tag }} | |
- name: Test cpac, platform and tag specified | |
run: | | |
coverage run --append -m pytest --basetemp=${PWD}/tmp --doctest-modules --image=${{ needs.set_docker_image.outputs.docker_image }} --platform ${{ matrix.platform }} --tag ${{ matrix.tag }} . | |
coverage report -m | |
- name: Test cpac, platform specified, tag unspecified | |
if: ${{ matrix.tag == 'latest' }} and ${{ matrix.platform == 'docker' }} | |
run: | | |
coverage run --append -m pytest --basetemp=${PWD}/tmp --doctest-modules --image=${{ needs.set_docker_image.outputs.docker_image }} --platform ${{ matrix.platform }} . | |
coverage report -m | |
- name: Test cpac, platform unspecified, tag specified | |
if: ${{ matrix.platform == 'docker' }} | |
run: | | |
coverage run --append -m pytest --basetemp=${PWD}/tmp --doctest-modules --image=${{ needs.set_docker_image.outputs.docker_image }} --tag ${{ matrix.tag }} . | |
coverage report -m | |
- name: Test cpac, platform and tag unspecified | |
if: ${{ matrix.platform == 'docker' }} && ${{ matrix.tag }} == 'latest' | |
run: | | |
coverage run --append -m pytest --basetemp=${PWD}/tmp --doctest-modules --image=${{ needs.set_docker_image.outputs.docker_image }} . | |
coverage report -m | |
- name: Report coverage | |
uses: AndreMiras/coveralls-python-action@v20201129 | |
with: | |
parallel: true | |
flag-name: Test cpac ${{ matrix.platform }} with Python ${{ matrix.python }} | |
continue-on-error: true | |
finalize_coverage-report: | |
needs: | |
- test_cpac | |
runs-on: ubuntu-latest | |
steps: | |
- name: Finalize coverage report | |
uses: AndreMiras/coveralls-python-action@v20201129 | |
with: | |
parallel-finished: true | |
continue-on-error: true |