From 9eb0c7ea45fa5cb67a6e79659d61026729ecba68 Mon Sep 17 00:00:00 2001 From: Jade Carino Date: Fri, 13 Sep 2024 14:13:27 +0100 Subject: [PATCH] Build OBR and galasabld combo image Signed-off-by: Jade Carino --- .github/workflows/build.yaml | 52 +++++++++++++++++++++++++---- .github/workflows/pr-build.yaml | 2 +- dockerfiles/dockerfile.obrgalasabld | 10 ++++++ 3 files changed, 57 insertions(+), 7 deletions(-) create mode 100644 dockerfiles/dockerfile.obrgalasabld diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index bc0aaf3..49305b5 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -7,7 +7,8 @@ name: Main build on: workflow_dispatch: - push: + pull_request: + # push: branches: [main] env: @@ -189,6 +190,45 @@ jobs: run: | docker run --env ARGOCD_AUTH_TOKEN=${{ env.ARGOCD_AUTH_TOKEN }} --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/argocdcli:main app wait ${{ env.BRANCH }}-maven-repos --resource apps:Deployment:obr-${{ env.BRANCH }} --health --server argocd.galasa.dev + # To build an image with the Uber OBR and galasabld executable inside. + # This is needed during releases. + - name: Checkout buildutils + uses: actions/checkout@v4 + with: + repository: ${{ env.NAMESPACE }}/buildutils + path: buildutils + ref: ${{ env.BRANCH }} + + - name: Setup up Go + uses: actions/setup-go@v5 + with: + go-version: 1.22 + + - name: Build galasabld using the Makefile + working-directory: buildutils + run: | + make all + + - name: Extract metadata for OBR and galasabld image + id: metadata + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/obr-and-galasabld-executable + + - name: Build and push OBR and galasabld image + id: build + uses: docker/build-push-action@v5 + with: + context: buildutils + file: obr/dockerfiles/dockerfile.obrgalasabld + push: true + tags: ${{ steps.metadata.outputs.tags }} + labels: ${{ steps.metadata.outputs.labels }} + build-args: | + dockerRepository=${{ env.REGISTRY }} + tag=${{ env.BRANCH }} + platform=linux-amd64 + build-obr-javadocs: name: Build OBR javadocs using galasabld image and maven runs-on: ubuntu-latest @@ -297,20 +337,20 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Extract metadata for Javadoc site image - id: metadata-javadocsite + id: metadata-javadoc-site uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 with: - images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/javadocsite + images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/javadoc-site - name: Build and push Javadoc site image - id: build-javadocsite + id: build-javadoc-site uses: docker/build-push-action@v5 with: context: obr file: obr/dockerfiles/dockerfile.javadocsite push: true - tags: ${{ steps.metadata-javadocsite.outputs.tags }} - labels: ${{ steps.metadata-javadocsite.outputs.labels }} + tags: ${{ steps.metadata-javadoc-site.outputs.tags }} + labels: ${{ steps.metadata-javado-csite.outputs.labels }} - name: Recycle javadocsite application in ArgoCD run: | diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 59be8ea..6cf86a5 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -257,7 +257,7 @@ jobs: context: obr file: obr/dockerfiles/dockerfile.javadocsite load: true - tags: javadocsite:test + tags: javadoc-site:test - name: Build Javadoc Maven repo image for testing uses: docker/build-push-action@v5 diff --git a/dockerfiles/dockerfile.obrgalasabld b/dockerfiles/dockerfile.obrgalasabld new file mode 100644 index 0000000..52633d6 --- /dev/null +++ b/dockerfiles/dockerfile.obrgalasabld @@ -0,0 +1,10 @@ +ARG dockerRepository +ARG tag + +# During a release, we need to be able to execute galasabld commands from inside the OBR image +FROM ${dockerRepository}/galasa-dev/obr-maven-artefacts:${tag} + +ARG platform +COPY bin/galasabld-${platform} /bin/galasabld + +ENTRYPOINT ["/bin/galasabld"] \ No newline at end of file