HPCC-XXXX Add workflow test to check if default helm output changes #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Docker smoketest build | |
on: | |
pull_request: | |
branches: | |
- "master" | |
- "candidate-*.x" | |
- "!candidate-8.2.*" | |
- "!candidate-8.0.*" | |
- "!candidate-7.12.*" | |
- "!candidate-7.10.*" | |
- "!candidate-7.8.*" | |
- "!candidate-7.6.*" | |
- "!candidate-7.4.*" | |
- "!candidate-7.2.*" | |
- "!candidate-7.0.*" | |
- "!candidate-6.*" | |
jobs: | |
check-skip: | |
# continue-on-error: true # Uncomment once integration is finished | |
runs-on: ubuntu-20.04 | |
# Map a step output to a job output | |
outputs: | |
changed: ${{ steps.skip_check.outputs.dockerfiles || steps.skip_check.outputs.platform }} | |
steps: | |
- id: skip_check | |
uses: hpcc-systems/github-actions/changed-modules@main | |
with: | |
github_token: ${{ github.token }} | |
build-images: | |
needs: check-skip | |
if: ${{ needs.check-skip.outputs.changed }} | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: vars | |
id: vars | |
run: | | |
# echo ::set-output name=container_registry::ghcr.io | |
# echo ::set-output name=cr_user::${{ github.repository_owner }} | |
echo ::set-output name=container_registry::docker.io | |
echo ::set-output name=cr_user::hpccbuilds | |
echo ::set-output name=build_prbase_sha::${{ github.event.pull_request.base.sha }} | |
echo ::set-output name=build_prbase_label::${{ github.base_ref }} | |
echo ::set-output name=build_user::${{ github.actor }} | |
echo ::set-output name=build_type::RelWithDebInfo | |
echo ::set-output name=use_cppunit::1 | |
echo ::set-output name=platform_build::smoketest-platform-build-vcpkg | |
- name: tracing | |
run: | | |
echo "Base ref = ${{ github.ref }}" | |
echo "Action = ${{ github.action }}" | |
echo "Event = ${{ github.event_name }}" | |
echo "Actor = ${{ github.actor }}" | |
echo "Ref = ${{ github.ref }}" | |
echo "base sha = ${{ github.event.pull_request.base.sha }}" | |
echo "Sha = ${{ github.sha }}" | |
echo "github.repository = ${{ github.repository }}" | |
echo "repository_owner = ${{ github.repository_owner }}" | |
echo "github.workspace = ${{ github.workspace }}" | |
echo "runner.workspace = ${{ runner.workspace }}" | |
echo "github.event.pull_request.head.repo.owner.login = ${{ github.event.pull_request.head.repo.owner.login }}" | |
echo "build_prbase_label = ${{ steps.vars.outputs.build_prbase_label }}" | |
echo "platform_build = ${{ steps.vars.outputs.platform_build }}" | |
- name: Checkout PR | |
uses: actions/checkout@v3 | |
- name: Calculate vcpkg vars | |
id: vcpkg_vars | |
run: | | |
echo "base_ver=$(git submodule status vcpkg | cut -c2-9)" >> $GITHUB_OUTPUT | |
- name: tracing (vcpkg_vars) | |
run: | | |
echo "vcpkg_vars.base_ver = ${{ steps.vcpkg_vars.outputs.base_ver }}" | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v1 | |
with: | |
driver: docker | |
- name: Check if PR-Base prebuilt | |
id: check-images | |
run: | | |
prbase_missing=$(docker manifest inspect ${{ steps.vars.outputs.container_registry }}/${{ steps.vars.outputs.cr_user }}/${{ steps.vars.outputs.platform_build }}:${{ steps.vars.outputs.build_prbase_label }}-${{ github.event.pull_request.base.sha }} > /dev/null ; echo $?) | |
echo prbase_missing=${prbase_missing} | |
if [[ "${prbase_missing}" -eq 1 ]] | |
then | |
echo "Current PR target branch image cannot be found, using latest" | |
prbase_missing=$(docker manifest inspect ${{ steps.vars.outputs.container_registry }}/${{ steps.vars.outputs.cr_user }}/${{ steps.vars.outputs.platform_build }}:${{ steps.vars.outputs.build_prbase_label }}-latest > /dev/null ; echo $?) | |
if [[ "${prbase_missing}" -eq 1 ]] | |
then | |
echo "Cannot find the 'latest' target branch image" | |
echo ::set-output name=prbase_missing::${prbase_missing} | |
fi | |
echo ::set-output name=platform_prbase_ver::${{ steps.vars.outputs.build_prbase_label }}-latest | |
else | |
echo ::set-output name=platform_prbase_ver::${{ steps.vars.outputs.build_prbase_label }}-${{ github.event.pull_request.base.sha }} | |
fi | |
# Normal expectation is that the following step would normally be skipped | |
# NB: This is only for the case where the target branch image doesn't already exist. | |
# The build-containers-target-branch.yml action would normally have built/published this image, | |
# or they'll be a "latest" which will have been picked up by the check-images step. | |
- name: branch image | |
if: ${{ steps.check-images.outputs.prbase_missing == '1' }} | |
uses: docker/build-push-action@v2 | |
with: | |
context: . | |
file: ./dockerfiles/platform-build/Dockerfile | |
builder: ${{ steps.buildx.outputs.name }} | |
tags: | | |
${{ steps.vars.outputs.container_registry }}/${{ steps.vars.outputs.cr_user }}/${{ steps.vars.outputs.platform_build }}:${{ steps.vars.outputs.build_prbase_label }}-${{ steps.vars.outputs.build_prbase_sha }} | |
${{ steps.vars.outputs.container_registry }}/${{ steps.vars.outputs.cr_user }}/${{ steps.vars.outputs.platform_build }}:${{ steps.vars.outputs.build_prbase_label }}-latest | |
build-args: | | |
CR_REPO=${{ steps.vars.outputs.container_registry }} | |
BASE_VER=${{ steps.vcpkg_vars.outputs.base_ver }} | |
BUILD_USER=${{ github.repository_owner }} | |
GITHUB_ACTOR=${{ github.actor }} | |
BUILD_TAG=${{ steps.vars.outputs.build_prbase_sha }} | |
BUILD_TYPE=${{ steps.vars.outputs.build_type }} | |
GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} | |
USE_CPPUNIT=${{ steps.vars.outputs.use_cppunit }} | |
BUILD_THREADS=${{ steps.vars.outputs.build_threads }} | |
- name: PR image | |
uses: docker/build-push-action@v2 | |
with: | |
context: . | |
file: ./dockerfiles/platform-build-incremental-container/Dockerfile | |
builder: ${{ steps.buildx.outputs.name }} | |
build-args: | | |
CR_USER=${{ steps.vars.outputs.cr_user }} | |
CR_REPO=${{ steps.vars.outputs.container_registry }} | |
PLATFORM_PRBASE_VER=${{ steps.check-images.outputs.platform_prbase_ver }} | |
GITHUB_REPO=${{ github.repository }} | |
GITHUB_PRREF=${{ github.ref }} | |
BUILD_THREADS=${{ steps.vars.outputs.build_threads }} |