Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parameterise main build workflow to support any branch/tag #169

Merged
merged 2 commits into from
Aug 14, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 33 additions & 22 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:
env:
REGISTRY: ghcr.io
NAMESPACE: galasa-dev
IMAGE_TAG: main
BRANCH: ${{ github.ref_name }}
ARGO_APP_BRANCH: gh # TODO: remove this parameter and just use env.BRANCH once we update development.galasa.dev/main with these workflows.
ARGOCD_AUTH_TOKEN: ${{ secrets.ARGOCD_TOKEN }}

jobs:
Expand All @@ -21,24 +22,28 @@ jobs:
uses: actions/checkout@v4
with:
path: obr
ref: ${{ env.BRANCH }}

- name: Checkout framework
uses: actions/checkout@v4
with:
repository: ${{ env.NAMESPACE }}/framework
path: framework
ref: ${{ env.BRANCH }}

- name: Checkout extensions
uses: actions/checkout@v4
with:
repository: ${{ env.NAMESPACE }}/extensions
path: extensions
ref: ${{ env.BRANCH }}

- name: Checkout managers
uses: actions/checkout@v4
with:
repository: ${{ env.NAMESPACE }}/managers
path: managers
ref: ${{ env.BRANCH }}

- name: Set up JDK
uses: actions/setup-java@v4
Expand Down Expand Up @@ -89,7 +94,7 @@ jobs:

- name: Generate Galasa BOM
run: |
docker run --rm -v ${{ github.workspace }}:/var/root/ ghcr.io/${{ env.NAMESPACE }}/galasabld-amd64:${{ env.IMAGE_TAG }} template --releaseMetadata var/root/framework/release.yaml --releaseMetadata /var/root/extensions/release.yaml --releaseMetadata /var/root/managers/release.yaml --releaseMetadata /var/root/obr/release.yaml --template /var/root/obr/galasa-bom/pom.template --output /var/root/obr/galasa-bom/pom.xml --bom
docker run --rm -v ${{ github.workspace }}:/var/root/ ghcr.io/galasa-dev/galasabld-amd64:main template --releaseMetadata var/root/framework/release.yaml --releaseMetadata /var/root/extensions/release.yaml --releaseMetadata /var/root/managers/release.yaml --releaseMetadata /var/root/obr/release.yaml --template /var/root/obr/galasa-bom/pom.template --output /var/root/obr/galasa-bom/pom.xml --bom

- name: Display Galasa BOM pom.xml
run: |
Expand All @@ -98,15 +103,15 @@ jobs:
- name: Build Galasa BOM with maven
run: |
mvn -f ${{ github.workspace }}/obr/galasa-bom/pom.xml deploy \
-Dgalasa.source.repo=https://development.galasa.dev/gh/maven-repo/managers \
-Dgalasa.source.repo=https://development.galasa.dev/${{ env.ARGO_APP_BRANCH }}/maven-repo/managers \
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \
-Dgalasa.release.repo=file:${{ github.workspace }}/obr/repo \
--batch-mode --errors --fail-at-end \
--settings /home/runner/work/gpg/settings.xml

- name: Generate Galasa OBR
run: |
docker run --rm -v ${{ github.workspace }}:/var/root/ ghcr.io/${{ env.NAMESPACE }}/galasabld-amd64:${{ env.IMAGE_TAG }} template --releaseMetadata var/root/framework/release.yaml --releaseMetadata /var/root/extensions/release.yaml --releaseMetadata /var/root/managers/release.yaml --releaseMetadata /var/root/obr/release.yaml --template /var/root/obr/dev.galasa.uber.obr/pom.template --output /var/root/obr/dev.galasa.uber.obr/pom.xml --obr
docker run --rm -v ${{ github.workspace }}:/var/root/ ghcr.io/galasa-dev/galasabld-amd64:main template --releaseMetadata var/root/framework/release.yaml --releaseMetadata /var/root/extensions/release.yaml --releaseMetadata /var/root/managers/release.yaml --releaseMetadata /var/root/obr/release.yaml --template /var/root/obr/dev.galasa.uber.obr/pom.template --output /var/root/obr/dev.galasa.uber.obr/pom.xml --obr

- name: Display Galasa OBR pom.xml
run: |
Expand All @@ -115,7 +120,7 @@ jobs:
- name: Build Galasa OBR with maven
run: |
mvn -f ${{ github.workspace }}/obr/dev.galasa.uber.obr/pom.xml deploy \
-Dgalasa.source.repo=https://development.galasa.dev/gh/maven-repo/managers \
-Dgalasa.source.repo=https://development.galasa.dev/${{ env.ARGO_APP_BRANCH }}/maven-repo/managers \
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \
-Dgalasa.release.repo=file:${{ github.workspace }}/obr/repo \
--batch-mode --errors --fail-at-end \
Expand Down Expand Up @@ -145,15 +150,15 @@ jobs:
labels: ${{ steps.metadata.outputs.labels }}
build-args: |
dockerRepository=${{ env.REGISTRY }}
tag=${{ env.IMAGE_TAG }}
tag=${{ env.BRANCH }}

- name: Recycle OBR application in ArgoCD
run: |
docker run --env ARGOCD_AUTH_TOKEN=${{ env.ARGOCD_AUTH_TOKEN }} --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/argocdcli:main app actions run gh-maven-repos restart --kind Deployment --resource-name obr-gh --server argocd.galasa.dev
docker run --env ARGOCD_AUTH_TOKEN=${{ env.ARGOCD_AUTH_TOKEN }} --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/argocdcli:main app actions run ${{ env.ARGO_APP_BRANCH }}-maven-repos restart --kind Deployment --resource-name obr-${{ env.ARGO_APP_BRANCH }} --server argocd.galasa.dev

- name: Wait for OBR application health in ArgoCD
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 gh-maven-repos --resource apps:Deployment:obr-gh --health --server argocd.galasa.dev
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.ARGO_APP_BRANCH }}-maven-repos --resource apps:Deployment:obr-${{ env.ARGO_APP_BRANCH }} --health --server argocd.galasa.dev

build-obr-javadocs:
name: Build OBR javadocs using galasabld image and maven
Expand All @@ -164,24 +169,28 @@ jobs:
uses: actions/checkout@v4
with:
path: obr
ref: ${{ env.BRANCH }}

- name: Checkout framework
uses: actions/checkout@v4
with:
repository: ${{ env.NAMESPACE }}/framework
path: framework
ref: ${{ env.BRANCH }}

- name: Checkout extensions
uses: actions/checkout@v4
with:
repository: ${{ env.NAMESPACE }}/extensions
path: extensions
ref: ${{ env.BRANCH }}

- name: Checkout managers
uses: actions/checkout@v4
with:
repository: ${{ env.NAMESPACE }}/managers
path: managers
ref: ${{ env.BRANCH }}

- name: Set up JDK
uses: actions/setup-java@v4
Expand Down Expand Up @@ -227,7 +236,7 @@ jobs:

- name: Build Galasa Javadoc
run: |
docker run --rm -v ${{ github.workspace }}:/var/root/ ghcr.io/${{ env.NAMESPACE }}/galasabld-amd64:${{ env.IMAGE_TAG }} template --releaseMetadata var/root/framework/release.yaml --releaseMetadata /var/root/extensions/release.yaml --releaseMetadata /var/root/managers/release.yaml --releaseMetadata /var/root/obr/release.yaml --template /var/root/obr/javadocs/pom.template --output /var/root/obr/javadocs/pom.xml --javadoc
docker run --rm -v ${{ github.workspace }}:/var/root/ ghcr.io/galasa-dev/galasabld-amd64:main template --releaseMetadata var/root/framework/release.yaml --releaseMetadata /var/root/extensions/release.yaml --releaseMetadata /var/root/managers/release.yaml --releaseMetadata /var/root/obr/release.yaml --template /var/root/obr/javadocs/pom.template --output /var/root/obr/javadocs/pom.xml --javadoc

- name: Display Galasa Javadoc pom.xml
run: |
Expand All @@ -236,7 +245,7 @@ jobs:
- name: Build javadoc site using maven
run: |
mvn -f ${{ github.workspace }}/obr/javadocs/pom.xml deploy \
-Dgalasa.source.repo=https://development.galasa.dev/gh/maven-repo/managers \
-Dgalasa.source.repo=https://development.galasa.dev/${{ env.ARGO_APP_BRANCH }}/maven-repo/managers \
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \
-Dgalasa.release.repo=file:${{ github.workspace }}/obr/javadocs/docker/repo \
-Dmaven.javadoc.failOnError=false --batch-mode --errors --fail-at-end \
Expand Down Expand Up @@ -267,11 +276,11 @@ jobs:

- name: Recycle javadocsite application in ArgoCD
run: |
docker run --env ARGOCD_AUTH_TOKEN=${{ env.ARGOCD_AUTH_TOKEN }} --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/argocdcli:main app actions run gh-maven-repos restart --kind Deployment --resource-name javadocsite-gh --server argocd.galasa.dev
docker run --env ARGOCD_AUTH_TOKEN=${{ env.ARGOCD_AUTH_TOKEN }} --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/argocdcli:main app actions run ${{ env.ARGO_APP_BRANCH }}-maven-repos restart --kind Deployment --resource-name javadocsite-${{ env.ARGO_APP_BRANCH }} --server argocd.galasa.dev

- name: Wait for javadocsite application health in ArgoCD
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 gh-maven-repos --resource apps:Deployment:javadocsite-gh --health --server argocd.galasa.dev
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.ARGO_APP_BRANCH }}-maven-repos --resource apps:Deployment:javadocsite-${{ env.ARGO_APP_BRANCH }} --health --server argocd.galasa.dev

- name: Extract metadata for Javadoc Maven repo image
id: metadata
Expand All @@ -294,11 +303,11 @@ jobs:

- name: Recycle javadoc application in ArgoCD
run: |
docker run --env ARGOCD_AUTH_TOKEN=${{ env.ARGOCD_AUTH_TOKEN }} --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/argocdcli:main app actions run gh-maven-repos restart --kind Deployment --resource-name javadoc-gh --server argocd.galasa.dev
docker run --env ARGOCD_AUTH_TOKEN=${{ env.ARGOCD_AUTH_TOKEN }} --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/argocdcli:main app actions run ${{ env.ARGO_APP_BRANCH }}-maven-repos restart --kind Deployment --resource-name javadoc-${{ env.ARGO_APP_BRANCH }} --server argocd.galasa.dev

- name: Wait for javadoc application health in ArgoCD
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 gh-maven-repos --resource apps:Deployment:javadoc-gh --health --server argocd.galasa.dev
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.ARGO_APP_BRANCH }}-maven-repos --resource apps:Deployment:javadoc-${{ env.ARGO_APP_BRANCH }} --health --server argocd.galasa.dev

build-obr-generic:
name: Build OBR embedded and boot images using galasabld and maven
Expand All @@ -310,24 +319,28 @@ jobs:
uses: actions/checkout@v4
with:
path: obr
ref: ${{ env.BRANCH }}

- name: Checkout framework
uses: actions/checkout@v4
with:
repository: ${{ env.NAMESPACE }}/framework
path: framework
ref: ${{ env.BRANCH }}

- name: Checkout extensions
uses: actions/checkout@v4
with:
repository: ${{ env.NAMESPACE }}/extensions
path: extensions
ref: ${{ env.BRANCH }}

- name: Checkout managers
uses: actions/checkout@v4
with:
repository: ${{ env.NAMESPACE }}/managers
path: managers
ref: ${{ env.BRANCH }}

- name: Make secrets directory
run : |
Expand Down Expand Up @@ -366,7 +379,7 @@ jobs:

- name: Generate Galasa OBR generic pom.xml
run: |
docker run --rm -v ${{ github.workspace }}:/var/root/ ghcr.io/${{ env.NAMESPACE }}/galasabld-amd64:${{ env.IMAGE_TAG }} template --releaseMetadata var/root/framework/release.yaml --releaseMetadata /var/root/extensions/release.yaml --releaseMetadata /var/root/managers/release.yaml --releaseMetadata /var/root/obr/release.yaml --template /var/root/obr/obr-generic/pom.template --output /var/root/obr/obr-generic/pom.xml --obr
docker run --rm -v ${{ github.workspace }}:/var/root/ ghcr.io/galasa-dev/galasabld-amd64:main template --releaseMetadata var/root/framework/release.yaml --releaseMetadata /var/root/extensions/release.yaml --releaseMetadata /var/root/managers/release.yaml --releaseMetadata /var/root/obr/release.yaml --template /var/root/obr/obr-generic/pom.template --output /var/root/obr/obr-generic/pom.xml --obr

- name: Display Galasa OBR generic pom.xml
run: |
Expand All @@ -376,7 +389,7 @@ jobs:
working-directory: ${{ github.workspace }}/obr/obr-generic
run: |
mvn -f pom.xml process-sources \
-Dgalasa.source.repo=https://development.galasa.dev/gh/maven-repo/obr \
-Dgalasa.source.repo=https://development.galasa.dev/${{ env.ARGO_APP_BRANCH }}/maven-repo/obr \
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \
dev.galasa:galasa-maven-plugin:0.15.0:obrembedded \
--batch-mode --errors --fail-at-end \
Expand Down Expand Up @@ -427,10 +440,9 @@ jobs:
push: true
tags: ${{ steps.metadata-boot-embedded.outputs.tags }}
labels: ${{ steps.metadata-boot-embedded.outputs.labels }}
# These need updating...
build-args: |
tag=${{env.IMAGE_TAG}}
dockerRepository=${{env.REGISTRY}}
tag=${{ env.BRANCH }}
dockerRepository=${{ env.REGISTRY }}
jdkImage=harbor.galasa.dev/docker_proxy_cache/library/openjdk:11

- name: Extract metadata for Galasa IBM boot embedded image
Expand All @@ -448,8 +460,7 @@ jobs:
push: true
tags: ${{ steps.metadata-ibm-boot-embedded.outputs.tags }}
labels: ${{ steps.metadata-ibm-boot-embedded.outputs.labels }}
# These need updating...
build-args: |
tag=${{env.IMAGE_TAG}}
dockerRepository=${{env.REGISTRY}}
tag=${{ env.BRANCH }}
dockerRepository=${{ env.REGISTRY }}
platform=x86_64