Skip to content

gProfiler 1.31.0 (#812) #59

gProfiler 1.31.0 (#812)

gProfiler 1.31.0 (#812) #59

name: Build gProfiler container & deploy
on:
push:
tags:
- '**'
jobs:
build-docker-x64:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: true
- name: Get and verify tag value
run: ./scripts/verify_tag.sh
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
# TODO: Add docker layer caching when GitHub Actions cache is stabilized and works good with "satackey/[email protected]"
- name: Build and push
run: |
set -x
export DOCKER_BUILDKIT=1
BASE_IMAGE="${{ env.GH_REPO }}:${{ env.RELEASE_VERSION }}"
LATEST_IMAGE="${{ env.GH_REPO }}:latest"
X86_64_IMAGE="$BASE_IMAGE-x86_64"
# build & push x86_64
./scripts/build_x86_64_container.sh -t "$X86_64_IMAGE"
docker push "$X86_64_IMAGE"
build-docker-aarch64:
runs-on: ["self-hosted", "ARM64"]
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: true
- name: Set up runner requirements
run: scripts/setup_runner_requirements.sh
- name: Get and verify tag value
run: ./scripts/verify_tag.sh
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
# TODO: Add docker layer caching when GitHub Actions cache is stabilized and works good with "satackey/[email protected]"
- name: Build and push
run: |
set -x
export DOCKER_BUILDKIT=1
BASE_IMAGE="${{ env.GH_REPO }}:${{ env.RELEASE_VERSION }}"
LATEST_IMAGE="${{ env.GH_REPO }}:latest"
AARCH64_IMAGE="$BASE_IMAGE-aarch64"
# build & push Aarch64
./scripts/build_aarch64_container.sh -t "$AARCH64_IMAGE" --push
push-manifest:
runs-on: ubuntu-latest
needs:
- build-docker-x64
- build-docker-aarch64
steps:
# needed to set up env.GH_REPO etc
- name: Checkout Code
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: true
- name: Get and verify tag value
run: ./scripts/verify_tag.sh
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Push manifest
run: |
set -x
export DOCKER_BUILDKIT=1
BASE_IMAGE="${{ env.GH_REPO }}:${{ env.RELEASE_VERSION }}"
LATEST_IMAGE="${{ env.GH_REPO }}:latest"
AARCH64_IMAGE="$BASE_IMAGE-aarch64"
X86_64_IMAGE="$BASE_IMAGE-x86_64"
docker pull $AARCH64_IMAGE
docker pull $X86_64_IMAGE
# create manifests for the tag + for 'latest'
docker manifest create "$BASE_IMAGE" "$X86_64_IMAGE" "$AARCH64_IMAGE"
docker manifest push "$BASE_IMAGE"
docker manifest create "$LATEST_IMAGE" "$X86_64_IMAGE" "$AARCH64_IMAGE"
docker manifest push "$LATEST_IMAGE"