Skip to content

add github action to build ood container #1

add github action to build ood container

add github action to build ood container #1

Workflow file for this run

name: Build and publish ondemand container
on:
pull_request:
workflow_dispatch:
push:
schedule:
# rebuild image every Monday morning
- cron: '43 4 * * 1'
jobs:
build_publish:
name: Build/publish ondemand container
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- name: Check if we should publish
if: >-
(github.event_name == 'push' ||
github.event_name == 'schedule' ||
github.event_name == 'workflow_dispatch') &&
github.ref_name == 'main'
run: |
echo PUBLISH_IMAGES=1 >> $GITHUB_ENV
- name: Set a tag based on the date
run: |
echo IMAGE_TAG=$(date +"%Y%m%d") >> $GITHUB_ENV
- name: Determine latest release of ondemand
id: getlatestrelease
run: |
release=$(curl -s -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/OSC/ondemand/releases/latest | jq -r .name)
echo "Building release $release"
echo "RELEASE=${release}" >> $GITHUB_ENV
- name: Check out the repo
uses: actions/checkout@v4
with:
repository: 'OSC/ondemand'
ref: '${{ env.RELEASE }}'
- name: Build Image
uses: redhat-actions/buildah-build@v2
id: build-image
with:
tags: latest ${{ github.sha }} ${{ env.IMAGE_TAG }} ${{ env.RELEASE }}
image: ondemand
containerfiles: "./Containerfile"
- name: Print image name and tags
run: echo "Image ${{ steps.build-image.outputs.image }} build with tags ${{ steps.build-image.outputs.tags }}" >> $GITHUB_STEP_SUMMARY
- name: Publish image on ghcr.io
id: push-to-ghcr
if: env.PUBLISH_IMAGES
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-image.outputs.image }}
tags: ${{ steps.build-image.outputs.tags }}
registry: ghcr.io/${{ github.repository_owner }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Print image url
if: env.PUBLISH_IMAGES
run: echo "Image pushed to ${{ steps.push-to-ghcr.outputs.registry-paths }}" >> $GITHUB_STEP_SUMMARY