This repository has been archived by the owner on Nov 13, 2024. It is now read-only.
Creating Main Build and PR build pipelines using github actions (#53) #5
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: 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 | |
strategy: | |
matrix: | |
config: [{'name':'linux','arch':'amd64'},{'name':'windows','arch':'amd64'},{'name':'darwin','arch':'amd64'},{'name':'darwin','arch':'arm64'},{'name':'linux','arch':'s390x'}] | |
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: | | |
echo $REGISTRY | |
make all | |
- name: Login to Github Container Regitery | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{env.REGISTRY}} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract metadata for Galasabld Image | |
id: metadata | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: ${{env.REGISTRY}}/${{env.NAMESPACE}}/galasabld-amd64 | |
- name: Build galasa Image for testing | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: dockerfiles/galasabld/dockerfile.galasabld | |
build-args: platform=linux-amd64 | |
load: true | |
tags: galasabld-amd64:${{env.IMAGE_TAG}} | |
- name: Testing Galasabld Image | |
run: | | |
docker run --rm galasabld-amd64:${{env.IMAGE_TAG}} | |
- name: Build and push Galsabld 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 executables | |
uses: actions/upload-artifact@v4 | |
with: | |
name: galasabld-${{matrix.config.name}}-${{matrix.config.arch}} | |
path: bin/galasabld-${{matrix.config.name}}-${{matrix.config.arch}} | |
build-Push-galasabld-ibm: | |
name: Build and Push Galasabld IBM Image | |
runs-on: ubuntu-latest | |
needs: build-Push-galasabld | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Login to Github Container Regitery | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{env.REGISTRY}} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract metadata for Galasabld Image | |
id: metadata | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: ${{env.REGISTRY}}/${{env.NAMESPACE}}/galasabld-ibm | |
- name: Build galasa Image for testing | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: dockerfiles/galasabld/dockerfile.galasabld-ibm | |
build-args: | | |
dockerRepository=ghcr.io | |
branch=${{env.BRANCH}} | |
load: true | |
tags: galasabld-ibm:${{env.IMAGE_TAG}} | |
- name: Testing Galasabld Image | |
run: | | |
docker run --rm galasabld-ibm:${{env.IMAGE_TAG}} | |
- name: Build and push Galsabld-Ibm Image | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: dockerfiles/galasabld/dockerfile.galasabld-ibm | |
build-args: | | |
dockerRepository=ghcr.io | |
branch=${{env.BRANCH}} | |
push: true | |
tags: ${{ steps.metadata.outputs.tags }} | |
labels: ${{ steps.metadata.outputs.labels }} | |
build-Push-openapi2beans: | |
name: Build and push openapi2beans artefacts | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
config: [{'name':'darwin','arch':'arm64'},{'name':'darwin','arch':'x86_64'},{'name':'linux','arch':'x86_64'}] | |
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 Regitery | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{env.REGISTRY}} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_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 | |
build-args: platform=linux-x86_64 | |
load: true | |
tags: openapi2beans:${{env.IMAGE_TAG}} | |
- name: Testing 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 | |
build-args: platform=linux-x86_64 | |
push: true | |
tags: ${{ steps.metadata.outputs.tags }} | |
labels: ${{ steps.metadata.outputs.labels }} | |
- name: Push openapi2beans executables | |
uses: actions/upload-artifact@v4 | |
with: | |
name: openapi2beans-${{matrix.config.name}}-${{matrix.config.arch}} | |
path: openapi2beans/bin/openapi2beans-${{matrix.config.name}}-${{matrix.config.arch}} | |