Skip to content

Commit

Permalink
split actions into disjoint parts
Browse files Browse the repository at this point in the history
  • Loading branch information
wpoely86 committed Aug 26, 2024
1 parent 438efbd commit 60cbc41
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 85 deletions.
95 changes: 10 additions & 85 deletions .github/workflows/build-publish-containers.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
name: Build and publish container images
on:
pull_request:
workflow_dispatch:
inputs:
upstream_version:
type: string
description: Which version should be build?

push:
schedule:
# rebuild image every Monday morning
- cron: '43 3 * * 1'
push:
paths-ignore:
- 'ondemand/**'
pull_request:
paths-ignore:
- 'ondemand/**'

jobs:
build_publish:
Expand Down Expand Up @@ -46,8 +44,9 @@ jobs:
- name: Determine latest release of VSTS Agent
if: matrix.tag == 'azure-pipelines-azureagent'
id: getvstsagentlatest
shell: bash
run: |
release=$(curl -s -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/microsoft/azure-pipelines-agent/releases/latest | jq -r .name)
release=$(curl -s -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/microsoft/azure-pipelines-agent/releases/latest | jq -e -r .name)
echo "Building release $release"
echo "RELEASE=${release:1}" >> $GITHUB_ENV
Expand All @@ -60,7 +59,7 @@ jobs:
path: azure-pipelines-jupyterhub/vsc-config

- name: Build Image
uses: redhat-actions/buildah-build@v2.13
uses: redhat-actions/buildah-build@v2
id: build-image
with:
tags: latest ${{ github.sha }} ${{ env.IMAGE_TAG }} ${{env.RELEASE}}
Expand All @@ -70,86 +69,12 @@ jobs:
operator_name=${{ secrets.JH_USERNAME }}
operator_uid=${{ secrets.JH_UID }}
az_ag_release=${{ env.RELEASE }}
dockerfiles: |
containerfiles: |
./${{ matrix.tag }}/Dockerfile
- 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/[email protected]
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


build_publish_ondemand:
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: |
IMAGE_TAG=$(date +"%Y%m%d")
echo IMAGE_TAG=$IMAGE_TAG >> $GITHUB_ENV
echo "Image tag is $IMAGE_TAG"
- 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 the version specified manually
if: ${{ inputs.upstream_version }}
shell: bash
run: |
release=$(curl -s -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/OSC/ondemand/releases/tags/${{ inputs.upstream_version }} | jq -e -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 }}'
path: 'ondemand'

- name: Build Image
uses: redhat-actions/buildah-build@v2
id: build-image
with:
tags: latest ${{ env.IMAGE_TAG }} ${{ env.RELEASE }}
image: ondemand
containerfiles: ondemand/Dockerfile
context: ondemand
build-args: |
VERSION=${{ env.RELEASE }}
- 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
Expand Down
90 changes: 90 additions & 0 deletions .github/workflows/build-publish-ondemand.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: Build and publish ondemand container
on:
workflow_dispatch:
inputs:
upstream_version:
type: string
description: Which version should be build?
schedule:
# rebuild image every Monday morning
- cron: '43 3 * * 1'
push:
paths:
- 'ondemand/**'
pull_request:
paths:
- 'ondemand/**'

jobs:
build_publish_ondemand:
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: |
IMAGE_TAG=$(date +"%Y%m%d")
echo IMAGE_TAG=$IMAGE_TAG >> $GITHUB_ENV
echo "Image tag is $IMAGE_TAG"
- 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 the version specified manually
if: ${{ inputs.upstream_version }}
shell: bash
run: |
release=$(curl -s -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/OSC/ondemand/releases/tags/${{ inputs.upstream_version }} | jq -e -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 }}'
path: 'ondemand'

- name: Build Image
uses: redhat-actions/buildah-build@v2
id: build-image
with:
tags: latest ${{ env.IMAGE_TAG }} ${{ env.RELEASE }}
image: ondemand
containerfiles: ondemand/Dockerfile
context: ondemand
build-args: |
VERSION=${{ env.RELEASE }}
- 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

0 comments on commit 60cbc41

Please sign in to comment.