Skip to content

[patch] add comment to check again on april patch #267

[patch] add comment to check again on april patch

[patch] add comment to check again on april patch #267

Workflow file for this run

name: Build CLI Base
on:
push:
branches: [ "**" ]
tags-ignore: [ "**" ]
release:
types: [ published ]
jobs:
build-amd64:
name: Build Image (amd64)
runs-on: ubuntu-latest
if: ${{ !contains(github.event.head_commit.message, '[doc]') }}
steps:
- name: Checkout
uses: actions/checkout@v4
# Without this option, we don't get the tag information
with:
fetch-depth: 0
- name: Initialise the build system
run: |
chmod u+x $GITHUB_WORKSPACE/build/bin/*.sh
$GITHUB_WORKSPACE/build/bin/initbuild.sh
source $GITHUB_WORKSPACE/build/bin/.functions.sh
- name: Build the docker image (amd64)
run: |
echo "GITHUB_REF=$GITHUB_REF"
echo "GITHUB_EVENT_NAME=$GITHUB_EVENT_NAME"
# Login to quay.io
docker login --username "${{ secrets.QUAYIO_USERNAME }}" --password "${{ secrets.QUAYIO_PASSWORD }}" quay.io
# Build the image
$GITHUB_WORKSPACE/build/bin/docker-build.sh -r quay.io/ibmmas/cli-base --target-platform amd64 -b image/cli-base
# Squash the image layers
python3 -m pip install docker-squash
docker-squash --load-image --tag quay.io/ibmmas/cli-base:${{ env.DOCKER_TAG }}-amd64 quay.io/ibmmas/cli-base:${{ env.DOCKER_TAG }}-amd64
# List available images
docker images
# Push the images
docker push quay.io/ibmmas/cli-base:${{ env.DOCKER_TAG }}-amd64
build-s390x:
name: Build Image (s390x)
runs-on: ubuntu-latest
if: ${{ !contains(github.event.head_commit.message, '[doc]') }}
steps:
- name: Checkout
uses: actions/checkout@v4
# Without this option, we don't get the tag information
with:
fetch-depth: 0
- name: Initialise the build system
run: |
chmod u+x $GITHUB_WORKSPACE/build/bin/*.sh
$GITHUB_WORKSPACE/build/bin/initbuild.sh
source $GITHUB_WORKSPACE/build/bin/.functions.sh
- name: Build the docker image (s390x)
env:
ARTIFACTORY_TOKEN: ${{ secrets.ARTIFACTORY_TOKEN }}
run: |
echo "GITHUB_REF=$GITHUB_REF"
echo "GITHUB_EVENT_NAME=$GITHUB_EVENT_NAME"
# Login to quay.io
docker login --username "${{ secrets.QUAYIO_USERNAME }}" --password "${{ secrets.QUAYIO_PASSWORD }}" quay.io
# Before we build the s390x image we need to download some pre-build dependencies from Artifactory
wget --header="Authorization:Bearer $ARTIFACTORY_TOKEN" https://na.artifactory.swg-devops.com/artifactory/wiotp-generic-local/dependencies/rclone/rclone.tar.gz -O $GITHUB_WORKSPACE/image/cli-base/install/rclone.tar.gz
python3 $GITHUB_WORKSPACE/build/bin/python-collect-prebuilt-wheels.py --req-file $GITHUB_WORKSPACE/image/cli-base/install/requirements.txt --dest $GITHUB_WORKSPACE/image/cli-base/install/ --add-dependency cryptography
# Build the images
$GITHUB_WORKSPACE/build/bin/docker-build.sh -r quay.io/ibmmas/cli-base --target-platform s390x -b image/cli-base
# Squash the image layers
python3 -m pip install docker-squash
docker-squash --load-image --tag quay.io/ibmmas/cli-base:${{ env.DOCKER_TAG }}-s390x quay.io/ibmmas/cli-base:${{ env.DOCKER_TAG }}-s390x
# List available images
docker images
# Push the images
docker push quay.io/ibmmas/cli-base:${{ env.DOCKER_TAG }}-s390x
build-arm64:
name: Build Image (arm64)
runs-on: ubuntu-latest
if: ${{ !contains(github.event.head_commit.message, '[doc]') }}
steps:
- name: Checkout
uses: actions/checkout@v4
# Without this option, we don't get the tag information
with:
fetch-depth: 0
- name: Initialise the build system
run: |
chmod u+x $GITHUB_WORKSPACE/build/bin/*.sh
$GITHUB_WORKSPACE/build/bin/initbuild.sh
source $GITHUB_WORKSPACE/build/bin/.functions.sh
- name: Build the docker image (arm64)
run: |
echo "GITHUB_REF=$GITHUB_REF"
echo "GITHUB_EVENT_NAME=$GITHUB_EVENT_NAME"
# Login to quay.io
docker login --username "${{ secrets.QUAYIO_USERNAME }}" --password "${{ secrets.QUAYIO_PASSWORD }}" quay.io
# Build the image
$GITHUB_WORKSPACE/build/bin/docker-build.sh -r quay.io/ibmmas/cli-base --target-platform arm64 -b image/cli-base
# # Squash the image layers
python3 -m pip install docker-squash
docker-squash --load-image --tag quay.io/ibmmas/cli-base:${{ env.DOCKER_TAG }}-arm64 quay.io/ibmmas/cli-base:${{ env.DOCKER_TAG }}-arm64
# List available images
docker images
# Push the images
docker push quay.io/ibmmas/cli-base:${{ env.DOCKER_TAG }}-arm64
build-manifest:
name: Build Manifest
runs-on: ubuntu-latest
needs:
- build-amd64
- build-s390x
- build-arm64
if: ${{ !contains(github.event.head_commit.message, '[doc]') }}
steps:
- name: Checkout
uses: actions/checkout@v4
# Without this option, we don't get the tag information
with:
fetch-depth: 0
- name: Initialise the build system
run: |
chmod u+x $GITHUB_WORKSPACE/build/bin/*.sh
$GITHUB_WORKSPACE/build/bin/initbuild.sh
source $GITHUB_WORKSPACE/build/bin/.functions.sh
- name: Publish the manifest
run: |
echo "GITHUB_REF=$GITHUB_REF"
echo "GITHUB_EVENT_NAME=$GITHUB_EVENT_NAME"
# Login to quay.io
docker login --username "${{ secrets.QUAYIO_USERNAME }}" --password "${{ secrets.QUAYIO_PASSWORD }}" quay.io
# Publish the manifest
$GITHUB_WORKSPACE/build/bin/docker-manifest.sh -r quay.io/ibmmas/cli-base --target-platforms amd64,s390x,arm64
# Re-issue the manifest under an alias where needed
# https://github.com/docker/buildx/issues/1744#issuecomment-1896645786
if [[ "$GITHUB_REF" == "refs/heads/stable" ]]; then
docker buildx imagetools create -t quay.io/ibmmas/cli-base:stable quay.io/ibmmas/cli-base:${{ env.DOCKER_TAG }}
elif [[ "$GITHUB_EVENT_NAME" == "release" ]]; then
docker buildx imagetools create -t quay.io/ibmmas/cli-base:latest quay.io/ibmmas/cli-base:${{ env.DOCKER_TAG }}
fi