Skip to content

Define ARGs within the FROM #133

Define ARGs within the FROM

Define ARGs within the FROM #133

name: Build artdaq-spack docker image (self hosted)
on:
schedule:
- cron: "0 0 * * 4"
push:
branches: [ main ]
tags:
- 'v*'
paths:
- dockerfiles/artdaq-spack.dockerfile
workflow_dispatch:
jobs:
push_to_registries:
name: Push Docker image to multiple registries
permissions:
packages: write
contents: read
strategy:
fail-fast: false
matrix:
os: [ 'alma9', 'alma10' ]
spackVer: [ 'v0.28', 'v1.1' ]
runs-on: [self-hosted, "${{ matrix.os }}"]
steps:
- name: Test CVMFS
id: cvmfsdirs
run: |
ls -l /cvmfs/fermilab.opensciencegrid.org/products/artdaq/spack_${{matrix.spackVer}}
art=`ls -d /cvmfs/fermilab.opensciencegrid.org/products/artdaq/spack_${{matrix.spackVer}}/art-suite-*|tail -1|sed 's|.*/||g'`
artdaq=`ls -d /cvmfs/fermilab.opensciencegrid.org/products/artdaq/spack_${{matrix.spackVer}}/artdaq-*|tail -1|sed 's|.*/||g'`
ots=`ls -d /cvmfs/fermilab.opensciencegrid.org/products/artdaq/spack_${{matrix.spackVer}}/ots-*|tail -1|sed 's|.*/||g'`
echo "${art} ${artdaq} ${ots}"
echo "art=${art}" >> $GITHUB_OUTPUT
echo "artdaq=${artdaq}" >> $GITHUB_OUTPUT
echo "ots=${ots}" >> $GITHUB_OUTPUT
- name: Check out the daq-docker repo
uses: actions/checkout@main
with:
repository: art-daq/daq-docker
path: daq-docker
- name: Log in to Docker Hub
uses: docker/login-action@master
with:
registry: docker.io
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Log in to the Container registry
uses: docker/login-action@master
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.TOKEN_GHIO }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@master
with:
images: |
eflumerf/artdaq-spack${{matrix.spackVer}}-${{matrix.os}}
ghcr.io/art-daq/artdaq-spack${{matrix.spackVer}}-${{matrix.os}}
tags: |
type=raw,value=latest
type=ref,event=branch
type=ref,event=tag
- name: prepare build dir
run: |
build_dir="${{ github.workspace }}/docker-build"
mkdir -p $build_dir
cd $build_dir
cp ${{ github.workspace }}/daq-docker/dockerfiles/artdaq-spack.dockerfile $build_dir/Dockerfile
rsync --mkpath --progress --delete -ax /cvmfs/fermilab.opensciencegrid.org/products/artdaq/spack_${{matrix.spackVer}}/${{ steps.cvmfsdirs.outputs.art }}/ $build_dir/spack_${{matrix.spackVer}}/${{ steps.cvmfsdirs.outputs.art }}
rsync --mkpath --progress --delete -ax /cvmfs/fermilab.opensciencegrid.org/products/artdaq/spack_${{matrix.spackVer}}/${{ steps.cvmfsdirs.outputs.artdaq }}/ $build_dir/spack_${{matrix.spackVer}}/${{ steps.cvmfsdirs.outputs.artdaq }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@master
- name: Build and push Docker images
uses: docker/build-push-action@master
with:
context: ${{ github.workspace }}/docker-build
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
ART_AREA=${{ steps.cvmfsdirs.outputs.art }}
ARTDAQ_AREA=${{ steps.cvmfsdirs.outputs.artdaq }}
BASE_IMAGE=eflumerf/${{ matrix.os }}-spack:latest
SPACK_VERSION=${{ matrix.spackVer }}