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 <huy.mai@est.tech>
  • Loading branch information
mquhuy committed Aug 7, 2024
1 parent a8d421e commit 82bbb7c
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 51 deletions.
82 changes: 31 additions & 51 deletions .github/workflows/build-images-action.yml
Original file line number Diff line number Diff line change
@@ -1,56 +1,36 @@
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: "metal3.bot@gmail.com"
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: "metal3.bot@gmail.com"
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:
name: Build BMO container image
# uses: metal3-io/project-infra/.github/workflows/container-image-build.yml@main
# uses: Nordix/metal3-project-infra/.github/workflows/container-image-build.yml@mquhuy/add-container-image-build-wf-template
uses: "./.github/workflows/container-image-build.yml"
with:
image-name: "baremetal-operator"
pushImage: true
secrets:
QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }}
QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }}
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
build_keepalived:
name: Build keepalived container image
# uses: metal3-io/project-infra/.github/workflows/container-image-build.yml@main
uses: Nordix/metal3-project-infra/.github/workflows/container-image-build.yml@mquhuy/add-container-image-build-wf-template
with:
image-name: "keepalived"
dockerfile-directory: resources/keepalived-docker
pushImage: true
secrets:
QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }}
QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }}
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
9 changes: 9 additions & 0 deletions .github/workflows/check-secrets.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: Check Secret
on: [pull_request]

jobs:
check-secret-1:
runs-on: ubuntu-latest
steps:
- name: Check secret
run: echo "Secret is ${{ secrets.QUAY_USERNAME }}"
77 changes: 77 additions & 0 deletions .github/workflows/container-image-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: build-images action template
permissions: {}

on:
workflow_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: .
pushImage:
required: false
description: "Whether to push the image afterwards"
type: boolean
default: true
secrets:
QUAY_USERNAME:
required: false
QUAY_PASSWORD:
required: false
SLACK_WEBHOOK:
required: true

jobs:
job:
runs-on: ubuntu-latest
if: github.repository_owner == 'metal3-io'

permissions:
contents: write

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_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
pushImage: ${{ inputs.pushImage }}

- 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 82bbb7c

Please sign in to comment.