Skip to content

Update vector<1.5 for base image #239

Update vector<1.5 for base image

Update vector<1.5 for base image #239

Workflow file for this run

name: Docker build
on:
push:
branches:
- main
tags:
- "*"
pull_request:
env:
DOCKER_ORG: coffeateam
GITHUB_SHA: ${{ github.sha }}
GITHUB_REF: ${{ github.ref }}
# Update each time there is added latest python: it will be used for `latest` tag
python_latest: "3.12"
python_latestv0: "3.10"
# For coffea 2024.x.x we have conda release, github CI bot will detect new version and open PR with changes
release: "2024.11.0"
# For coffea 0.7.23 we dont have conda release, please update it manually
releasev0: "0.7.23"
jobs:
matrix-build:
strategy:
fail-fast: false
matrix:
image_dir: [coffea-base, coffea-dask]
distro: [almalinux8, almalinux9]
python: ["3.9", "3.10", "3.11", "3.12"]
exclude:
- distro: almalinux8
python: 3.9
- distro: almalinux9
python: 3.9
- image_dir: coffea-base
python: 3.11
- image_dir: coffea-base
python: 3.12
name: ${{ matrix.image_dir }}-${{ matrix.distro }}-${{ matrix.python }}
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
with:
driver: docker
- name: Login to DockerHub
uses: docker/login-action@v1
if: github.event_name == 'push'
with:
username: ${{ secrets.DOCKERHUB_ACCOUNT }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
if: github.event_name == 'push'
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Harbor Hub
if: success() && github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
registry: hub.opensciencegrid.org
username: ${{ secrets.HARBOR_USER }}
password: ${{ secrets.HARBOR_PASSWORD }}
- name: Generate tags
id: tags
env:
image_dir: ${{ matrix.image_dir }}
python: ${{ matrix.python }}
distro: ${{ matrix.distro }}
releasev0: ${{ env.releasev0 }}
release: ${{ env.release }}
python_latest: ${{ env.python_latest}}
stable: ${{ startsWith(github.ref, 'refs/tags') }}
run: |
image="coffeateam/${image_dir}-${distro}"
image_default="coffeateam/${image_dir}"
# release tag or in case other case make it dev
if [ "$stable" == "true" ]; then
if [ ${image_dir} == 'coffea-base' ]; then
tag="${image}:${releasev0}-py${python}"
else
tag="${image}:${release}-py${python}"
fi
tags=${image}:latest-py${python},$tag
# latest tag
if [ ${python} == ${python_latest} ] || [ "$python" == ${python_latestv0} ]; then
tags=${image}:latest,$tags
fi
else
tag="${image}:dev-py${python}"
tags=$tag
if [ "$python" == ${python_latest} ] || [ "$python" == ${python_latestv0} ]; then
tags=${image}:dev,$tags
fi
fi
echo "::set-output name=tag::${tag}"
echo "::set-output name=tags::${tags}"
- name: Build base v0
if: ${{ matrix.image_dir == 'coffea-base' }}
uses: docker/build-push-action@v5
with:
load: true
tags: ${{ steps.tags.outputs.tags }}
context: ${{ matrix.image_dir }}
file: ${{ matrix.image_dir }}/Dockerfile.${{ matrix.distro }}
build-args: |
python=${{ matrix.python }}
releasev0=${{ env.releasev0 }}
- name: Build base v1
if: ${{ matrix.image_dir != 'coffea-base' }}
uses: docker/build-push-action@v5
with:
load: true
tags: ${{ steps.tags.outputs.tags }}
context: ${{ matrix.image_dir }}
file: ${{ matrix.image_dir }}/Dockerfile.${{ matrix.distro }}
build-args: |
python=${{ matrix.python }}
release=${{ env.release }}
- name: Test Conda environement
env:
tag: ${{ steps.tags.outputs.tag }}
run: |
docker run --rm ${tag} conda list --export
- name: Make sure voms tools are working
env:
tag: ${{ steps.tags.outputs.tag }}
run: |
ERROR=$(docker run ${tag} voms-proxy-info 2>&1 > /dev/null; exit 0)
TEST=$(echo -e "\nCouldn't find a valid proxy.\n")
if [ "$ERROR" == "$TEST" ]; then
exit 0
else
exit 1
fi
- name: Test Pytest environement v0
if: ${{ matrix.image_dir == 'coffea-base' }}
env:
tag: ${{ steps.tags.outputs.tag }}
run: |
docker run --rm -v ${{ github.workspace }}:/tmp/workspace ${tag} \
sh -c "pip install -U pytest && cd tmp/workspace && pytest -m v0"
- name: Test Pytest environement CalVer
if: ${{ matrix.image_dir != 'coffea-base' }}
env:
tag: ${{ steps.tags.outputs.tag }}
run: |
docker run --rm -v ${{ github.workspace }}:/tmp/workspace ${tag} \
sh -c "pip install -U pytest && cd tmp/workspace && pytest -m calver"
- name: Build and push v0
if: ${{ matrix.image_dir != 'coffea-base' }}
uses: docker/build-push-action@v5
with:
platforms: linux/amd64
push: ${{ github.event_name == 'push' }}
tags: ${{ steps.tags.outputs.tags }}
context: ${{ matrix.image_dir }}
file: ${{ matrix.image_dir }}/Dockerfile.${{ matrix.distro }}
build-args: |
python=${{ matrix.python }}
release=${{ env.release }}
- name: Build and push v1
if: ${{ matrix.image_dir == 'coffea-base' }}
uses: docker/build-push-action@v5
with:
platforms: linux/amd64
push: ${{ github.event_name == 'push' }}
tags: ${{ steps.tags.outputs.tags }}
context: ${{ matrix.image_dir }}
file: ${{ matrix.image_dir }}/Dockerfile.${{ matrix.distro }}
build-args: |
python=${{ matrix.python }}
releasev0=${{ env.releasev0 }}