Skip to content

Alma9 build v4 production frozen release #11

Alma9 build v4 production frozen release

Alma9 build v4 production frozen release #11

name: Alma9 build v4 production frozen release
on:
workflow_dispatch:
inputs:
base-release:
description: 'targeted base release (e.g. v4.4.0)'
required: true
det-release:
description: 'targeted detector release (e.g. v4.3.0)'
required: true
det:
description: 'detector type (nd or fd)'
required: true
build-number:
description: 'frozen release number, e.g. 1'
required: true
jobs:
build_the_frozen_release_spack:
name: build_frozen_release_spack
runs-on: daq
container:
image: ghcr.io/dune-daq/alma9-slim-externals:v2.0
defaults:
run:
shell: bash
steps:
- name: Checkout daq-release
uses: actions/checkout@v4
with:
path: daq-release
- name: setup directories and install spack for the base release
run: |
export DET=${{ github.event.inputs.det }}
export BASE_RELEASE_DIR=/cvmfs/dunedaq.opensciencegrid.org/spack/releases/coredaq-${{ github.event.inputs.base-release }}-a9-${{ github.event.inputs.build-number }}
export DET_RELEASE_DIR=/cvmfs/dunedaq.opensciencegrid.org/spack/releases/${DET}daq-${{ github.event.inputs.det-release }}-a9-${{ github.event.inputs.build-number }}
export OS=almalinux9
source daq-release/.github/workflows/wf-setup-tools-v4.sh
daq-release/scripts/checkout-daq-package.py -i daq-release/configs/coredaq/coredaq-${{ github.event.inputs.base-release }}/release.yaml -a -c -o $DET_RELEASE_DIR/sourcecode
daq-release/scripts/spack/build-release-v4.sh $BASE_RELEASE_DIR $DET_RELEASE_DIR core $OS
cd $BASE_RELEASE_DIR/..
tar_and_stage_release $BASE_RELEASE_TAG
- name: upload spack frozen release tarball for base release
uses: actions/upload-artifact@v3
with:
name: frozens_coredaq
path: ${{ github.workspace }}/tarballs_for_upload/coredaq-${{ github.event.inputs.base-release }}-a9-${{ github.event.inputs.build-number }}.tar.gz
- name: setup directories and install spack for the detector release
run: |
export DET=${{ github.event.inputs.det }}
export BASE_RELEASE_DIR=/cvmfs/dunedaq.opensciencegrid.org/spack/releases/coredaq-${{ github.event.inputs.base-release }}-a9-${{ github.event.inputs.build-number }}
export DET_RELEASE_DIR=/cvmfs/dunedaq.opensciencegrid.org/spack/releases/${DET}daq-${{ github.event.inputs.det-release }}-a9-${{ github.event.inputs.build-number }}
export OS=almalinux9
source daq-release/.github/workflows/wf-setup-tools-v4.sh
daq-release/scripts/checkout-daq-package.py -i daq-release/configs/fddaq/fddaq-${{ github.event.inputs.det-release }}/release.yaml -a -c -o $DET_RELEASE_DIR/sourcecode
daq-release/scripts/spack/build-release-v4.sh $BASE_RELEASE_DIR $DET_RELEASE_DIR $DET $OS
cd $DET_RELEASE_DIR/..
tar_and_stage_release $DET_RELEASE_TAG
- name: upload spack frozen release tarball for detector release
uses: actions/upload-artifact@v3
with:
name: frozens_${{ github.event.inputs.det }}daq
path: ${{ github.workspace }}/tarballs_for_upload/${{ github.event.inputs.det }}daq-${{ github.event.inputs.det-release }}-a9-${{ github.event.inputs.build-number }}.tar.gz
update_image:
name: update_spack_image_rc
runs-on: ubuntu-latest
strategy:
matrix:
include:
- input_image: "ghcr.io/dune-daq/alma9-slim-externals:v2.0"
output_image: "ghcr.io/dune-daq/frozen-release-alma9"
tag: ${{ github.event.inputs.det }}daq-${{ github.event.inputs.det-release }}-a9
needs: build_the_frozen_release_spack
environment: dockerhub
permissions:
packages: write
contents: read
steps:
- name: clean docker-build
run: |
mkdir -p ${GITHUB_WORKSPACE}/docker-build
rm -rf ${GITHUB_WORKSPACE}/docker-build/*
- name: Download spack frozen release tarball artifact for base release
uses: actions/download-artifact@v3
with:
name: frozens_coredaq
path: ${{ github.workspace }}/docker-build
- name: Download spack frozen release tarball artifact for detector release
uses: actions/download-artifact@v3
with:
name: frozens_${{ github.event.inputs.det }}daq
path: ${{ github.workspace }}/docker-build
- name: prepare cvmfs mirror spack-frozens
run: |
cd ${{ github.workspace }}/docker-build
mkdir -p releases
cd releases
base_tag=coredaq-${{ github.event.inputs.base-release }}-a9
tar xf ../${base_tag}-${{ github.event.inputs.build-number }}.tar.gz
rm -rf ../${base_tag}-${{ github.event.inputs.build-number }}.tar.gz
tar xf ../${{ matrix.tag }}-${{ github.event.inputs.build-number }}.tar.gz
rm -rf ../${{ matrix.tag }}-${{ github.event.inputs.build-number }}.tar.gz
ln -s ${{ matrix.tag }}-${{ github.event.inputs.build-number }} ${{ matrix.tag }}
cd ..
echo "FROM "${{ matrix.input_image }} > Dockerfile
echo 'MAINTAINER John Freeman "[email protected]"' >> Dockerfile
echo "ENV REFRESHED_FOR "${{ matrix.tag }} >> Dockerfile
echo "COPY --from=ghcr.io/dune-daq/pypi-repo:latest /cvmfs/dunedaq.opensciencegrid.org/pypi-repo /cvmfs/dunedaq.opensciencegrid.org/pypi-repo" >> Dockerfile
echo "ADD releases /cvmfs/dunedaq.opensciencegrid.org/spack/releases" >> Dockerfile
echo 'ENTRYPOINT ["/bin/bash"]' >> Dockerfile
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ matrix.output_image }}
tags: |
type=raw,value=${{ matrix.tag }}
- name: Build and push Docker images
uses: docker/build-push-action@v5
with:
context: ${{ github.workspace }}/docker-build
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
generate_dbt_setup_release_env:
name: generate_dbt_setup_release_env
runs-on: ubuntu-latest
needs: update_image
container:
image: ghcr.io/dune-daq/frozen-release-alma9:${{ github.event.inputs.det }}daq-${{ github.event.inputs.det-release }}-a9
defaults:
run:
shell: bash
steps:
- name: create dbt-setup-release-env.sh and daq_app_rte.sh for detector release
run: |
DET=${{ github.event.inputs.det }}
source /cvmfs/dunedaq.opensciencegrid.org/setup_dunedaq.sh
setup_dbt latest || true
dbt-setup-release ${DET}daq-${{ github.event.inputs.det-release }}-a9
declare -x > ${GITHUB_WORKSPACE}/${DET}daq-dbt-setup-release-env.sh
declare -f >> ${GITHUB_WORKSPACE}/${DET}daq-dbt-setup-release-env.sh
egrep "declare -x (PATH|.*_SHARE|CET_PLUGIN_PATH|DUNEDAQ_SHARE_PATH|LD_LIBRARY_PATH|LIBRARY_PATH|PYTHONPATH)=" ${GITHUB_WORKSPACE}/${DET}daq-dbt-setup-release-env.sh > ${GITHUB_WORKSPACE}/${DET}daq_app_rte.sh
- name: upload ${{ github.event.inputs.det }}daq-dbt-setup-release-env.sh
uses: actions/upload-artifact@v3
with:
name: ${{ github.event.inputs.det }}daq-dbt_setup_release_env
path: ${{ github.workspace }}/${{ github.event.inputs.det }}daq-dbt-setup-release-env.sh
- name: upload ${{ github.event.inputs.det }}daq_app_rte.sh
uses: actions/upload-artifact@v3
with:
name: ${{ github.event.inputs.det }}daq_app_rte
path: ${{ github.workspace }}/${{ github.event.inputs.det }}daq_app_rte.sh