diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6bb9ec8..ea69052 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,260 +1,264 @@ +# +# Copyright contributors to the Galasa project +# +# SPDX-License-Identifier: EPL-2.0 +# name: Main build on: - push: - branches: [main] + push: + branches: [main] env: - REGISTRY: ghcr.io - NAMESPACE: galasa-dev - IMAGE_TAG: main - BRANCH: main + 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 + build-push-galasabld: + name: Build and push galasabld artefacts + runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 + 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: 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: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + - name: Login to GitHub Container Registry + 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: 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 - build-args: platform=linux-amd64 - load: true - tags: galasabld-amd64:${{ env.IMAGE_TAG }} - - - 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: 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-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-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-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 + - 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 + 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: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + steps: + - name: Checkout code + uses: actions/checkout@v4 - - 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 - build-args: | - dockerRepository=ghcr.io - branch=${{ env.BRANCH }} - load: true - tags: galasabld-ibm:${{ env.IMAGE_TAG }} - - - 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 - build-args: | - dockerRepository=ghcr.io - branch=${{ env.BRANCH }} - push: true - tags: ${{ steps.metadata.outputs.tags }} - labels: ${{ steps.metadata.outputs.labels }} + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_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 - build-push-openapi2beans: - name: Build and push openapi2beans artefacts - runs-on: ubuntu-latest + - name: Setup up Go + uses: actions/setup-go@v5 + with: + go-version: 1.22 - steps: - - name: Checkout code - uses: actions/checkout@v4 + - name: Build openapi2beans using the Makefile + run: | + make all -C openapi2beans - - name: Setup up Go - uses: actions/setup-go@v5 - with: - go-version: 1.22 + - name: Login to GitHub Container Registry + 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 using the Makefile - run: | - make all -C openapi2beans - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + - 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: 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: 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 - build-args: platform=linux-x86_64 - push: true - tags: ${{ steps.metadata.outputs.tags }} - labels: ${{ steps.metadata.outputs.labels }} - - - name: Push openapi2beans-darwin-arm64 executables - uses: actions/upload-artifact@v4 - with: - name: openapi2beans-darwin-arm64 - path: openapi2beans/bin/openapi2beans-darwin-arm64 + - 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-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 + - 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 + build-push-buildutils-executables: + name: Build and push buildutils repository executables + runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 + 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: 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: 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: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata for buildutils-executables image + id: metadata + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/buildutils-executables - - 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 }} - \ No newline at end of file + - 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 }} + \ No newline at end of file diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 1232b29..49bf681 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -1,101 +1,106 @@ +# +# Copyright contributors to the Galasa project +# +# SPDX-License-Identifier: EPL-2.0 +# name: PR build on: - pull_request: - branches: [main] + pull_request: + branches: [main] env: IMAGE_TAG: ${{ github.event.number }} jobs: - build-upload-galasabld: - name: Build galasabld - runs-on: ubuntu-latest + build-upload-galasabld: + name: Build galasabld + runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 + steps: + - name: Checkout code + uses: actions/checkout@v4 - - name: Setup up Go - uses: actions/setup-go@v5 - with: - go-version: 1.22 + - 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 and test galasabld image + run: | + docker build -t galasabld:${{ env.IMAGE_TAG }} --build-arg platform=linux-amd64 -f dockerfiles/galasabld/dockerfile.galasabld . + docker run --rm galasabld:${{ env.IMAGE_TAG }} - - name: Build galasabld using the Makefile - run: | - make all - - - name: Build and test galasabld image - run: | - docker build -t galasabld:${{env.IMAGE_TAG}} --build-arg platform=linux-amd64 -f dockerfiles/galasabld/dockerfile.galasabld . - docker run --rm galasabld:${{env.IMAGE_TAG}} - - - 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-upload-openapi2beans: - name: Build openapi2beans - runs-on: ubuntu-latest + - name: Push galasabld-linux-amd64 executables + uses: actions/upload-artifact@v4 + with: + name: galasabld-linux-amd64 + path: bin/galasabld-linux-amd64 - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup up Go - uses: actions/setup-go@v5 - with: - go-version: 1.22 - - - name: Build and test openapi2beans using the Makefile - run: | - make all -C openapi2beans/ - - - name: Build and test openapi2beans image - run: | - docker build -t openapi2beans:${{env.IMAGE_TAG}} --build-arg platform=linux-x86_64 -f dockerfiles/openapi2beans/dockerfile.openapi2beans . - docker run --rm openapi2beans:${{env.IMAGE_TAG}} - - - name: Push openapi2beans-darwin-arm64 executables - uses: actions/upload-artifact@v4 - with: - name: openapi2beans-darwin-arm64 - path: openapi2beans/bin/openapi2beans-darwin-arm64 + - 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 - - 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 + build-upload-openapi2beans: + name: Build openapi2beans + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 - - 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 \ No newline at end of file + - name: Setup up Go + uses: actions/setup-go@v5 + with: + go-version: 1.22 + + - name: Build and test openapi2beans using the Makefile + run: | + make all -C openapi2beans/ + + - name: Build and test openapi2beans image + run: | + docker build -t openapi2beans:${{ env.IMAGE_TAG }} --build-arg platform=linux-x86_64 -f dockerfiles/openapi2beans/dockerfile.openapi2beans . + docker run --rm openapi2beans:${{ env.IMAGE_TAG }} + + - 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 \ No newline at end of file