Main build #150
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: | |
workflow_dispatch: | |
push: | |
branches: [main] | |
env: | |
REGISTRY: ghcr.io | |
NAMESPACE: galasa-dev | |
BRANCH: ${{ github.ref_name }} | |
jobs: | |
log-github-ref: | |
name: Log the GitHub ref this workflow is running on (Branch or tag that received dispatch) | |
runs-on: ubuntu-latest | |
steps: | |
- name: Log GitHub ref of workflow | |
run: | | |
echo "This workflow is running on GitHub ref ${{ env.BRANCH }}" | |
build-isolated: | |
name: Build Isolated | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Galasa | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ env.NAMESPACE }}/galasa | |
path: galasa | |
- name: Checkout Isolated | |
uses: actions/checkout@v4 | |
with: | |
path: isolated | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'semeru' | |
- name: Generate Isolated pom.xml | |
run: | | |
docker run --rm -v ${{ github.workspace }}:/var/root/ ghcr.io/galasa-dev/galasabld-amd64:main template --releaseMetadata var/root/galasa/modules/framework/release.yaml --releaseMetadata /var/root/galasa/modules/extensions/release.yaml --releaseMetadata /var/root/galasa/modules/managers/release.yaml --releaseMetadata /var/root/galasa/modules/obr/release.yaml --template /var/root/isolated/full/pom.template --output /var/root/isolated/full/pom.xml --isolated | |
- name: Make directory to place build logs in | |
working-directory: ./isolated/full | |
run: | | |
mkdir isolated-build-logs | |
- name: Build Isolated pom.xml with maven | |
working-directory: ./isolated/full | |
env: | |
GITHUB_TOKEN_READ_PACKAGES_USERNAME: ${{ secrets.READ_GITHUB_PACKAGES_USERNAME }} | |
GITHUB_TOKEN_READ_PACKAGES_PASSWORD: ${{ secrets.READ_GITHUB_PACKAGES_TOKEN }} | |
run: | | |
set -o pipefail | |
mvn -f pom.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
-Dgithub.token.read.packages.username=${{ env.GITHUB_TOKEN_READ_PACKAGES_USERNAME }} \ | |
-Dgithub.token.read.packages.password=${{ env.GITHUB_TOKEN_READ_PACKAGES_PASSWORD }} \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee isolated-build-logs/build-isolated-pom.log | |
- name: Build Isolated pom2.xml with maven | |
working-directory: ./isolated/full | |
run: | | |
set -o pipefail | |
mvn -f pom2.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee isolated-build-logs/build-isolated-pom2.log | |
- name: Build Isolated pom3.xml with maven | |
working-directory: ./isolated/full | |
run: | | |
set -o pipefail | |
mvn -f pom3.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee isolated-build-logs/build-isolated-pom3.log | |
- name: Build Isolated pom4.xml with maven | |
working-directory: ./isolated/full | |
run: | | |
set -o pipefail | |
mvn -f pom4.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee isolated-build-logs/build-isolated-pom4.log | |
- name: Build Isolated pom5.xml with maven | |
working-directory: ./isolated/full | |
run: | | |
set -o pipefail | |
mvn -f pom5.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee isolated-build-logs/build-isolated-pom5.log | |
- name: Build Isolated pom6.xml with maven | |
working-directory: ./isolated/full | |
run: | | |
set -o pipefail | |
mvn -f pom6.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee isolated-build-logs/build-isolated-pom6.log | |
- name: Build Isolated Javadoc with maven | |
working-directory: ./isolated/full | |
run: | | |
set -o pipefail | |
mvn -f pomJavaDoc.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee isolated-build-logs/build-isolated-javadoc.log | |
- name: Build Isolated Docs with maven | |
working-directory: ./isolated/full | |
env: | |
GITHUB_TOKEN_READ_PACKAGES_USERNAME: ${{ secrets.READ_GITHUB_PACKAGES_USERNAME }} | |
GITHUB_TOKEN_READ_PACKAGES_PASSWORD: ${{ secrets.READ_GITHUB_PACKAGES_TOKEN }} | |
run: | | |
set -o pipefail | |
mvn -f pomDocs.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
-Dgithub.token.read.packages.username=${{ env.GITHUB_TOKEN_READ_PACKAGES_USERNAME }} \ | |
-Dgithub.token.read.packages.password=${{ env.GITHUB_TOKEN_READ_PACKAGES_PASSWORD }} \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee isolated-build-logs/build-isolated-docs.log | |
- name: Download galasactl binaries | |
working-directory: ./isolated/full | |
run: | | |
mkdir bin && | |
cd bin && | |
wget https://development.galasa.dev/${{ env.BRANCH }}/binary/cli/galasactl-darwin-x86_64 && | |
wget https://development.galasa.dev/${{ env.BRANCH }}/binary/cli/galasactl-darwin-arm64 && | |
wget https://development.galasa.dev/${{ env.BRANCH }}/binary/cli/galasactl-linux-arm64 && | |
wget https://development.galasa.dev/${{ env.BRANCH }}/binary/cli/galasactl-linux-x86_64 && | |
wget https://development.galasa.dev/${{ env.BRANCH }}/binary/cli/galasactl-linux-s390x && | |
wget https://development.galasa.dev/${{ env.BRANCH }}/binary/cli/galasactl-windows-x86_64.exe && | |
cd .. | |
- name: Build galasactl directory with maven | |
working-directory: ./isolated/full | |
run: | | |
set -o pipefail | |
mvn -f pomGalasactl.xml validate -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee isolated-build-logs/build-isolated-galasactl.log | |
- name: Copy text files into Isolated | |
working-directory: ./isolated/full | |
run : | | |
cp -vr resources/* target/isolated/ | |
- name: Login to Github Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ secrets.WRITE_GITHUB_PACKAGES_USERNAME }} | |
password: ${{ secrets.WRITE_GITHUB_PACKAGES_TOKEN }} | |
- name: Extract metadata for galasa-isolated image | |
id: metadata-galasa-isolated | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/galasa-isolated | |
- name: Build Docker image for Isolated development maven registry | |
id: build-galasa-isolated | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: ${{ github.workspace }}/isolated/dockerfiles/dockerfile.isolated | |
push: true | |
tags: ${{ steps.metadata-galasa-isolated.outputs.tags }} | |
labels: ${{ steps.metadata-galasa-isolated.outputs.labels }} | |
build-args: | | |
directory=isolated/full | |
- name: Manually build isolated.tar (full isolated) | |
run: | | |
docker pull ghcr.io/galasa-dev/galasa-isolated:main | |
docker save -o ${{ github.workspace }}/isolated/full/target/isolated/isolated.tar ghcr.io/galasa-dev/galasa-isolated:main | |
- name: Build Isolated zip with maven | |
working-directory: ./isolated/full | |
run: | | |
set -o pipefail | |
mvn -f pomZip.xml deploy -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.release.repo=file:${{ github.workspace }}/isolated/full/repo \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee isolated-build-logs/build-isolated-zip.log | |
- name: Upload Isolated Maven build logs | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: isolated-maven-build-logs | |
path: isolated-build-logs | |
retention-days: 7 | |
- name: Extract metadata for galasa-isolated-zip image | |
id: metadata-galasa-isolated-zip | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/galasa-isolated-zip | |
- name: Build Docker image for Isolated zip | |
id: build-galasa-isolated-zip | |
uses: docker/build-push-action@v5 | |
with: | |
context: ./isolated/full | |
file: ${{ github.workspace }}/isolated/dockerfiles/dockerfile.isolatedzip | |
push: true | |
tags: ${{ steps.metadata-galasa-isolated-zip.outputs.tags }} | |
labels: ${{ steps.metadata-galasa-isolated-zip.outputs.labels }} | |
build-args: | | |
baseVersion=latest | |
dockerRepository=ghcr.io | |
- name: Recycle application in ArgoCD | |
env: | |
ARGOCD_AUTH_TOKEN: ${{ secrets.ARGOCD_TOKEN }} | |
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 ${{ env.BRANCH }}-maven-repos restart --kind Deployment --resource-name isolated-${{ env.BRANCH }} --server argocd.galasa.dev | |
- name: Wait for application health in ArgoCD | |
env: | |
ARGOCD_AUTH_TOKEN: ${{ secrets.ARGOCD_TOKEN }} | |
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:isolated-${{ env.BRANCH }} --health --server argocd.galasa.dev | |
build-mvp: | |
name: Build MVP | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Galasa | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ env.NAMESPACE }}/galasa | |
path: galasa | |
- name: Checkout Isolated | |
uses: actions/checkout@v4 | |
with: | |
path: isolated | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'semeru' | |
- name: Generate MVP pom.xml | |
run: | | |
docker run --rm -v ${{ github.workspace }}:/var/root/ ghcr.io/galasa-dev/galasabld-amd64:main template --releaseMetadata var/root/galasa/modules/framework/release.yaml --releaseMetadata /var/root/galasa/modules/extensions/release.yaml --releaseMetadata /var/root/galasa/modules/managers/release.yaml --releaseMetadata /var/root/galasa/modules/obr/release.yaml --template /var/root/isolated/mvp/pom.template --output /var/root/isolated/mvp/pom.xml --mvp | |
- name: Make directory to place build logs in | |
working-directory: ./isolated/mvp | |
run: | | |
mkdir mvp-build-logs | |
- name: Build MVP pom.xml with maven | |
working-directory: ./isolated/mvp | |
env: | |
GITHUB_TOKEN_READ_PACKAGES_USERNAME: ${{ secrets.READ_GITHUB_PACKAGES_USERNAME }} | |
GITHUB_TOKEN_READ_PACKAGES_PASSWORD: ${{ secrets.READ_GITHUB_PACKAGES_TOKEN }} | |
run: | | |
set -o pipefail | |
mvn -f pom.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
-Dgithub.token.read.packages.username=${{ env.GITHUB_TOKEN_READ_PACKAGES_USERNAME }} \ | |
-Dgithub.token.read.packages.password=${{ env.GITHUB_TOKEN_READ_PACKAGES_PASSWORD }} \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee mvp-build-logs/build-mvp-pom.log | |
- name: Build MVP pom2.xml with maven | |
working-directory: ./isolated/mvp | |
run: | | |
set -o pipefail | |
mvn -f pom2.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee mvp-build-logs/build-mvp-pom2.log | |
- name: Build MVP pom3.xml with maven | |
working-directory: ./isolated/mvp | |
run: | | |
set -o pipefail | |
mvn -f pom3.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee mvp-build-logs/build-mvp-pom3.log | |
- name: Build MVP pom4.xml with maven | |
working-directory: ./isolated/mvp | |
run: | | |
set -o pipefail | |
mvn -f pom4.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee mvp-build-logs/build-mvp-pom4.log | |
- name: Build MVP pom5.xml with maven | |
working-directory: ./isolated/mvp | |
run: | | |
set -o pipefail | |
mvn -f pom5.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee mvp-build-logs/build-mvp-pom5.log | |
- name: Build MVP pom6.xml with maven | |
working-directory: ./isolated/mvp | |
run: | | |
set -o pipefail | |
mvn -f pom6.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee mvp-build-logs/build-mvp-pom6.log | |
- name: Build MVP Javadoc with maven | |
working-directory: ./isolated/mvp | |
run: | | |
set -o pipefail | |
mvn -f pomJavaDoc.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee mvp-build-logs/build-mvp-javadoc.log | |
- name: Build MVP Docs with maven | |
working-directory: ./isolated/mvp | |
env: | |
GITHUB_TOKEN_READ_PACKAGES_USERNAME: ${{ secrets.READ_GITHUB_PACKAGES_USERNAME }} | |
GITHUB_TOKEN_READ_PACKAGES_PASSWORD: ${{ secrets.READ_GITHUB_PACKAGES_TOKEN }} | |
run: | | |
set -o pipefail | |
mvn -f pomDocs.xml process-sources -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
-Dgithub.token.read.packages.username=${{ env.GITHUB_TOKEN_READ_PACKAGES_USERNAME }} \ | |
-Dgithub.token.read.packages.password=${{ env.GITHUB_TOKEN_READ_PACKAGES_PASSWORD }} \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee mvp-build-logs/build-mvp-docs.log | |
- name: Download galasactl binaries | |
working-directory: ./isolated/mvp | |
run: | | |
mkdir bin && | |
cd bin && | |
wget https://development.galasa.dev/${{ env.BRANCH }}/binary/cli/galasactl-darwin-x86_64 && | |
wget https://development.galasa.dev/${{ env.BRANCH }}/binary/cli/galasactl-darwin-arm64 && | |
wget https://development.galasa.dev/${{ env.BRANCH }}/binary/cli/galasactl-linux-arm64 && | |
wget https://development.galasa.dev/${{ env.BRANCH }}/binary/cli/galasactl-linux-x86_64 && | |
wget https://development.galasa.dev/${{ env.BRANCH }}/binary/cli/galasactl-linux-s390x && | |
wget https://development.galasa.dev/${{ env.BRANCH }}/binary/cli/galasactl-windows-x86_64.exe && | |
cd .. | |
- name: Build galasactl directory with maven | |
working-directory: ./isolated/mvp | |
run: | | |
set -o pipefail | |
mvn -f pomGalasactl.xml validate -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee mvp-build-logs/build-mvp-galasactl.log | |
- name: Copy text files into MVP | |
working-directory: ./isolated/mvp | |
run : | | |
cp -vr resources/* target/isolated/ | |
- name: Login to Github Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ secrets.WRITE_GITHUB_PACKAGES_USERNAME }} | |
password: ${{ secrets.WRITE_GITHUB_PACKAGES_TOKEN }} | |
- name: Extract metadata for galasa-mvp image | |
id: metadata-galasa-mvp | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/galasa-mvp | |
- name: Build Docker image for MVP development maven registry | |
id: build-galasa-mvp | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: ${{ github.workspace }}/isolated/dockerfiles/dockerfile.isolated | |
push: true | |
tags: ${{ steps.metadata-galasa-mvp.outputs.tags }} | |
labels: ${{ steps.metadata-galasa-mvp.outputs.labels }} | |
build-args: | | |
directory=isolated/mvp | |
- name: Manually build isolated.tar (MVP) | |
run: | | |
docker pull ghcr.io/galasa-dev/galasa-mvp:main | |
docker save -o ${{ github.workspace }}/isolated/mvp/target/isolated/isolated.tar ghcr.io/galasa-dev/galasa-mvp:main | |
- name: Build MVP zip with maven | |
working-directory: ./isolated/mvp | |
run: | | |
set -o pipefail | |
mvn -f pomZip.xml deploy -X \ | |
-Dgalasa.target.repo=file:target/isolated/maven \ | |
-Dgalasa.release.repo=file:${{ github.workspace }}/isolated/mvp/repo \ | |
-Dgalasa.runtime.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \ | |
-Dgalasa.simplatform.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/simplatform \ | |
-Dgalasa.javadoc.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/javadoc \ | |
-Dgalasa.docs.repo=https://maven.pkg.github.com/galasa-dev/galasa.dev \ | |
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \ | |
--batch-mode --errors --fail-at-end \ | |
--settings ${{ github.workspace }}/isolated/settings.xml 2>&1 | tee mvp-build-logs/build-mvp-zip.log | |
- name: Upload MVP Maven build logs | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: mvp-maven-build-logs | |
path: mvp-build-logs | |
retention-days: 7 | |
- name: Extract metadata for galasa-mvp-zip image | |
id: metadata-galasa-mvp-zip | |
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/galasa-mvp-zip | |
- name: Build Docker image for MVP zip | |
id: build-galasa-mvp-zip | |
uses: docker/build-push-action@v5 | |
with: | |
context: ./isolated/mvp | |
file: ${{ github.workspace }}/isolated/dockerfiles/dockerfile.isolatedzip | |
push: true | |
tags: ${{ steps.metadata-galasa-mvp-zip.outputs.tags }} | |
labels: ${{ steps.metadata-galasa-mvp-zip.outputs.labels }} | |
build-args: | | |
baseVersion=latest | |
dockerRepository=ghcr.io | |
- name: Recycle application in ArgoCD | |
env: | |
ARGOCD_AUTH_TOKEN: ${{ secrets.ARGOCD_TOKEN }} | |
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 ${{ env.BRANCH }}-maven-repos restart --kind Deployment --resource-name mvp-${{ env.BRANCH }} --server argocd.galasa.dev | |
- name: Wait for application health in ArgoCD | |
env: | |
ARGOCD_AUTH_TOKEN: ${{ secrets.ARGOCD_TOKEN }} | |
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:mvp-${{ env.BRANCH }} --health --server argocd.galasa.dev | |
report-failure: | |
name: Report failure in workflow | |
runs-on: ubuntu-latest | |
needs: [log-github-ref, build-isolated, build-mvp] | |
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 "isolated" --workflowName "${{ github.workflow }}" --workflowRunNum "${{ github.run_id }}" --ref "${{ env.BRANCH }}" --hook "${{ env.SLACK_WEBHOOK }}" |