This repository has been archived by the owner on Nov 13, 2024. It is now read-only.
Merge pull request #71 from galasa-dev/mcobbett-bean-generator-handle… #19
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
# | |
# Copyright contributors to the Galasa project | |
# | |
# SPDX-License-Identifier: EPL-2.0 | |
# | |
name: Main build | |
on: | |
push: | |
branches: [main] | |
env: | |
REGISTRY: ghcr.io | |
NAMESPACE: galasa-dev | |
IMAGE_TAG: main | |
BRANCH: main | |
jobs: | |
build-push-galasabld: | |
name: Build and push galasabld artefacts | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22 | |
- name: Build galasabld using the Makefile | |
run: | | |
make all | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: galasa-team | |
password: ${{ secrets.GALASA_TEAM_WRITE_PACKAGES_TOKEN }} | |
- name: Extract metadata for galasabld image | |
id: metadata | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/galasabld-amd64 | |
- name: Build galasabld image for testing | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: dockerfiles/galasabld/dockerfile.galasabld | |
load: true | |
tags: galasabld-amd64:${{ env.IMAGE_TAG }} | |
build-args: platform=linux-amd64 | |
- name: Test galasabld image | |
run: | | |
docker run --rm galasabld-amd64:${{ env.IMAGE_TAG }} | |
- name: Build and push galasabld image | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: dockerfiles/galasabld/dockerfile.galasabld | |
build-args: platform=linux-amd64 | |
push: true | |
tags: ${{ steps.metadata.outputs.tags }} | |
labels: ${{ steps.metadata.outputs.labels }} | |
- name: Push galasabld-linux-amd64 executables | |
uses: actions/upload-artifact@v4 | |
with: | |
name: galasabld-linux-amd64 | |
path: bin/galasabld-linux-amd64 | |
- name: Push galasabld-windows-amd64 executables | |
uses: actions/upload-artifact@v4 | |
with: | |
name: galasabld-windows-amd64 | |
path: bin/galasabld-windows-amd64 | |
- name: Push galasabld-darwin-amd64 executables | |
uses: actions/upload-artifact@v4 | |
with: | |
name: galasabld-darwin-amd64 | |
path: bin/galasabld-darwin-amd64 | |
- name: Push galasabld-darwin-arm64 executables | |
uses: actions/upload-artifact@v4 | |
with: | |
name: galasabld-darwin-arm64 | |
path: bin/galasabld-darwin-arm64 | |
- name: Push galasabld-linux-s390x executables | |
uses: actions/upload-artifact@v4 | |
with: | |
name: galasabld-linux-s390x | |
path: bin/galasabld-linux-s390x | |
build-push-galasabld-ibm: | |
name: Build and push galasabld-ibm artefact | |
runs-on: ubuntu-latest | |
needs: build-push-galasabld | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: galasa-team | |
password: ${{ secrets.GALASA_TEAM_WRITE_PACKAGES_TOKEN }} | |
- name: Extract metadata for galasabld-ibm image | |
id: metadata | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/galasabld-ibm | |
- name: Build galasabld-ibm image for testing | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: dockerfiles/galasabld/dockerfile.galasabld-ibm | |
load: true | |
tags: galasabld-ibm:${{ env.IMAGE_TAG }} | |
build-args: | | |
dockerRepository=ghcr.io | |
branch=${{ env.BRANCH }} | |
- name: Test galasabld-ibm image | |
run: | | |
docker run --rm galasabld-ibm:${{ env.IMAGE_TAG }} | |
- name: Build and push galasabld-ibm image | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: dockerfiles/galasabld/dockerfile.galasabld-ibm | |
push: true | |
tags: ${{ steps.metadata.outputs.tags }} | |
labels: ${{ steps.metadata.outputs.labels }} | |
build-args: | | |
dockerRepository=ghcr.io | |
branch=${{ env.BRANCH }} | |
build-push-openapi2beans: | |
name: Build and push openapi2beans artefacts | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22 | |
- name: Build openapi2beans using the Makefile | |
run: | | |
make all -C openapi2beans | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: galasa-team | |
password: ${{ secrets.GALASA_TEAM_WRITE_PACKAGES_TOKEN }} | |
- name: Extract metadata for openapi2beans image | |
id: metadata | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/openapi2beans | |
- name: Build openapi2beans image for testing | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: dockerfiles/openapi2beans/dockerfile.openapi2beans | |
load: true | |
tags: openapi2beans:${{ env.IMAGE_TAG }} | |
build-args: platform=linux-x86_64 | |
- name: Test openapi2beans image | |
run: | | |
docker run --rm openapi2beans:${{ env.IMAGE_TAG }} | |
- name: Build and push openapi2beans image | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: dockerfiles/openapi2beans/dockerfile.openapi2beans | |
push: true | |
tags: ${{ steps.metadata.outputs.tags }} | |
labels: ${{ steps.metadata.outputs.labels }} | |
build-args: platform=linux-x86_64 | |
- name: Push openapi2beans-darwin-arm64 executables | |
uses: actions/upload-artifact@v4 | |
with: | |
name: openapi2beans-darwin-arm64 | |
path: openapi2beans/bin/openapi2beans-darwin-arm64 | |
- name: Push openapi2beans-darwin-x86_64 executables | |
uses: actions/upload-artifact@v4 | |
with: | |
name: openapi2beans-darwin-x86_64 | |
path: openapi2beans/bin/openapi2beans-darwin-x86_64 | |
- name: Push openapi2beans-linux-x86_64 executables | |
uses: actions/upload-artifact@v4 | |
with: | |
name: openapi2beans-linux-x86_64 | |
path: openapi2beans/bin/openapi2beans-linux-x86_64 | |
build-push-buildutils-executables: | |
name: Build and push buildutils repository executables | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22 | |
- name: Build galasabld using the Makefile | |
run: | | |
make all | |
- name: Build openapi2beans using the Makefile | |
run: | | |
make all -C openapi2beans | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: galasa-team | |
password: ${{ secrets.GALASA_TEAM_WRITE_PACKAGES_TOKEN }} | |
- name: Extract metadata for buildutils-executables image | |
id: metadata | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/buildutils-executables | |
- name: Build and push buildutils-executables image | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: dockerfiles/dockerfile.buildutils | |
push: true | |
tags: ${{ steps.metadata.outputs.tags }} | |
labels: ${{ steps.metadata.outputs.labels }} | |
report-failure: | |
name: Report failure in workflow | |
runs-on: ubuntu-latest | |
needs: [build-push-galasabld, build-push-galasabld-ibm, build-push-openapi2beans, build-push-buildutils-executables] | |
if: failure() | |
steps: | |
- name: Report failure in workflow to Slack | |
env: | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} | |
run : | | |
docker run --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/galasabld-ibm:main slackpost workflows --repo "buildutils" --workflowName "${{ github.workflow }}" --workflowRunNum "${{ github.run_id }}" --ref "${{ env.BRANCH }}" --hook "${{ env.SLACK_WEBHOOK }}" |