Skip to content

Commit

Permalink
Move container build to gh runner
Browse files Browse the repository at this point in the history
Signed-off-by: Huy Mai <[email protected]>
  • Loading branch information
mquhuy committed Aug 7, 2024
1 parent a8d421e commit 67e7dc5
Show file tree
Hide file tree
Showing 2 changed files with 178 additions and 51 deletions.
164 changes: 113 additions & 51 deletions .github/workflows/build-images-action.yml
Original file line number Diff line number Diff line change
@@ -1,56 +1,118 @@
name: build-images-action

on:
push:
branches:
- 'main'
- 'release-*'
tags:
- 'v*'

permissions: {}
pull_request
# push:
# branches:
# - 'main'
# - 'release-*'
# tags:
# - 'v*'

jobs:
build:
name: Build container images
runs-on: ubuntu-latest

permissions:
contents: read

if: github.repository == 'metal3-io/baremetal-operator'
steps:
- name: build bmo image
uses: toptal/jenkins-job-trigger-action@137fff703dd260b52b53d3ba1960396415abc568 # 1.0.2
with:
jenkins_url: "https://jenkins.nordix.org/"
jenkins_user: "[email protected]"
jenkins_token: ${{ secrets.JENKINS_TOKEN }}
job_name: "metal3_baremetal-operator_container_image_building"
job_params: |
{
"BUILD_CONTAINER_IMAGE_GIT_REFERENCE": "${{ github.ref }}"
}
job_timeout: "1000"
- name: build keepalived image
uses: toptal/jenkins-job-trigger-action@137fff703dd260b52b53d3ba1960396415abc568 # 1.0.2
with:
jenkins_url: "https://jenkins.nordix.org/"
jenkins_user: "[email protected]"
jenkins_token: ${{ secrets.JENKINS_TOKEN }}
job_name: "metal3_keepalived_container_image_building"
job_params: |
{
"BUILD_CONTAINER_IMAGE_GIT_REFERENCE": "${{ github.ref }}"
}
job_timeout: "1000"
- name: Slack Notification on Failure
if: ${{ failure() }}
uses: rtCamp/action-slack-notify@4e5fb42d249be6a45a298f3c9543b111b02f7907 # 2.3.0
env:
SLACK_TITLE: 'GitHub Action Failed in ${{ github.repository }}'
SLACK_COLOR: '#FF0000'
SLACK_MESSAGE: 'The GitHub Action workflow failed for baremetal operator image build.'
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_CHANNEL: metal3-github-actions-notify
SLACK_USERNAME: metal3-github-actions-notify
build_bmo:
# uses: Nordix/metal3-project-infra/.github/workflow-templates/container-image-build.yml@mquhuy/add-container-image-build-wf-template
uses: .github/workflows/container-image-build.yml
with:
image-name: "baremetal-operator"
build_keepalived:
uses: Nordix/metal3-project-infra/.github/workflow-templates/container-image-build.yml@mquhuy/add-container-image-build-wf-template
with:
image-name: "keepalived"
dockerfile-directory: resources/keepalived-docker
# name: Build BMO container image
# runs-on: ubuntu-latest
#
# permissions:
# contents: read
#
# if: github.repository == 'metal3-io/baremetal-operator'
# steps:
#
# - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# with:
# ref: ${{ github.ref }}
#
# - name: Get current date
# id: date
# run: echo "current_date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
#
# - name: Get image tags
# id: image_tags
# run: |
# BASE_TAG=`echo "${{ github.ref_name }}" | sed 's/\//_/'`
# IMAGE_TAGS="${BASE_TAG}, ${BASE_TAG}_${{ steps.date.outputs.current_date }}_${{ github.sha }}"
# if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
# IMAGE_TAGS="${IMAGE_TAGS}, latest"
# fi
# echo "IMAGE_TAGS=${IMAGE_TAGS}" >> $GITHUB_ENV
#
# - name: Build BMO image
# uses: mr-smithers-excellent/docker-build-push@59523c638baec979a74fea99caa9e29d97e5963c # v6.4
# with:
# image: metal3-io/baremetal-operator
# tags: ${{ env.IMAGE_TAGS }}
# registry: quay.io
# username: ${{ secrets.QUAY_IO_USERNAME }}
# password: "${{ secrets.QUAY_IO_TOKEN }}"
#
# - name: Slack Notification on Failure
# if: ${{ failure() }}
# uses: rtCamp/action-slack-notify@4e5fb42d249be6a45a298f3c9543b111b02f7907 # 2.3.0
# env:
# SLACK_TITLE: 'GitHub Action Failed in ${{ github.repository }}'
# SLACK_COLOR: '#FF0000'
# SLACK_MESSAGE: 'The GitHub Action workflow failed for BMO image build.'
# SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
# SLACK_CHANNEL: metal3-github-actions-notify
# SLACK_USERNAME: metal3-github-actions-notify
#
# build_keepalived:
# name: Build keepalived container image
# runs-on: ubuntu-latest
#
# permissions:
# contents: read
#
# if: github.repository == 'metal3-io/baremetal-operator'
# steps:
#
# - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
# with:
# ref: ${{ github.ref }}
#
# - name: Get current date
# id: date
# run: echo "current_date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
#
# - name: Get image tags
# id: image_tags
# run: |
# BASE_TAG=`echo "${{ github.ref_name }}" | sed 's/\//_/'`
# IMAGE_TAGS="${BASE_TAG}, ${BASE_TAG}_${{ steps.date.outputs.current_date }}_${{ github.sha }}"
# if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
# IMAGE_TAGS="${IMAGE_TAGS}, latest"
# fi
# echo "IMAGE_TAGS=${IMAGE_TAGS}" >> $GITHUB_ENV
#
# - name: Build keepalived image
# uses: mr-smithers-excellent/docker-build-push@59523c638baec979a74fea99caa9e29d97e5963c # v6.4
# with:
# image: metal3-io/keepalived
# tags: ${{ env.IMAGE_TAGS }}
# dockerfile: resources/keepalived-docker/Dockerfile
# directory: resources/keepalived-docker
# registry: quay.io
# username: ${{ secrets.QUAY_IO_USERNAME }}
# password: "${{ secrets.QUAY_IO_TOKEN }}"
#
# - name: Slack Notification on Failure
# if: ${{ failure() }}
# uses: rtCamp/action-slack-notify@4e5fb42d249be6a45a298f3c9543b111b02f7907 # 2.3.0
# env:
# SLACK_TITLE: 'GitHub Action Failed in ${{ github.repository }}'
# SLACK_COLOR: '#FF0000'
# SLACK_MESSAGE: 'The GitHub Action workflow failed for keepalived image build.'
# SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
# SLACK_CHANNEL: metal3-github-actions-notify
# SLACK_USERNAME: metal3-github-actions-notify
65 changes: 65 additions & 0 deletions .github/workflows/container-image-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: build-images action template
permissions: {}

on:
worklow_call:
inputs:
image-name:
required: true
description: "Name of the image to build"
type: string
dockerfile-directory:
required: false
description: "The directory where the dockerfile locates, as relative to the repo root"
type: string
default: .

jobs:
job:
runs-on: ubuntu-latest
if: github.repository.fork == false

permissions:
contents: read

steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
ref: ${{ github.ref }}

- name: Get current date
id: date
run: echo "current_date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT

- name: Get image tags
id: image_tags
run: |
BASE_TAG=`echo "${{ github.ref_name }}" | sed 's/\//_/'`
IMAGE_TAGS="${BASE_TAG}, ${BASE_TAG}_${{ steps.date.outputs.current_date }}_${{ github.sha }}"
if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
IMAGE_TAGS="${IMAGE_TAGS}, latest"
fi
echo "IMAGE_TAGS=${IMAGE_TAGS}" >> $GITHUB_ENV
- name: Build ${{ inputs.image-name }} image
uses: mr-smithers-excellent/docker-build-push@59523c638baec979a74fea99caa9e29d97e5963c # v6.4
with:
image: metal3-io/${{ inputs.image-name }}
tags: ${{ env.IMAGE_TAGS }}
directory: ${{ inputs.dockerfile-directory }}
dockerfile: ${{ inputs.dockerfile-directory }}/Dockerfile
registry: quay.io
username: ${{ secrets.QUAY_IO_USERNAME }}
password: "${{ secrets.QUAY_IO_TOKEN }}"
imagePush: false

- name: Slack Notification on Failure
if: ${{ failure() }}
uses: rtCamp/action-slack-notify@4e5fb42d249be6a45a298f3c9543b111b02f7907 # 2.3.0
env:
SLACK_TITLE: 'GitHub Action Failed in ${{ github.repository }}'
SLACK_COLOR: '#FF0000'
SLACK_MESSAGE: 'The GitHub Action workflow failed for ${{ inputs.image-name }} image build.'
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_CHANNEL: metal3-github-actions-notify
SLACK_USERNAME: metal3-github-actions-notify

0 comments on commit 67e7dc5

Please sign in to comment.