Skip to content

Build and Release HPC Resource Provisioner #2

Build and Release HPC Resource Provisioner

Build and Release HPC Resource Provisioner #2

Workflow file for this run

---
name: Build and Release HPC Resource Provisioner
on:
workflow_dispatch:
inputs:
rel_branch:
description: Release branch/commit
default: main
required: true
env:
REL_BRANCH: ${{ github.event.inputs.rel_branch }}
jobs:
tag-and-release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: clone repo
uses: actions/checkout@v4
with:
ref: ${{ env.REL_BRANCH }}
- name: Determine version
run: |
echo REL_TAG=$(awk '/version =/ {print $3}' hpc_provisioner/pyproject.toml | tr -d '"') >> $GITHUB_ENV
- name: Create and upload tag ${{ env.REL_TAG }}
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git tag -a $REL_TAG -m "${REL_TAG}"
git push origin $REL_TAG
working-directory: ${{runner.workspace}}/hpc-resource-provisioner
- name: Build and push container
env:
BBPBUILDBOT_DOCKERHUB_PASSWORD: ${{ secrets.BBPBUILDBOT_DOCKERHUB_PASSWORD }}
GHCR_USER: ${{ secrets.GHCR_USER }}
GHCR_TOKEN: ${{ secrets.GHCR_TOKEN}}
run: |
SOURCE_CHECKSUM=$(find hpc_provisioner -type f -exec sha256sum {} \; | sha256sum | awk '{print $1}')
docker build --label "org.opencontainers.image.checksum=${SOURCE_CHECKSUM}" --label "org.opencontainers.image.software_version=${REL_TAG}" -t openbraininstitute/hpc-resource-provisioner:${REL_TAG} .
docker image tag openbraininstitute/hpc-resource-provisioner:${REL_TAG} openbraininstitute/hpc-resource-provisioner:latest
echo ${GHCR_TOKEN} | docker login -u ${GHCR_USER} --password-stdin
docker push ghcr.io/openbraininstitute/hpc-resource-provisioner:${REL_TAG}
docker push ghcr.io/openbraininstitute/hpc-resource-provisioner:latest
working-directory: ${{runner.workspace}}/hpc-resource-provisioner
- name: Release
uses: softprops/action-gh-release@v2
if: github.ref == 'refs/heads/main'
with:
tag_name: ${{ env.REL_TAG }}
make_latest: true
body: |-
Latest container image will always be: `docker pull ghcr.io/openbraininstitute/hpc-resource-provisioner:latest`
This particular version is `docker pull ghcr.io/openbraininstitute/hpc-resource-provisioner:${{ env.REL_TAG }}`