This repository has been archived by the owner on Nov 4, 2024. It is now read-only.
Added Main build github actions workflow #11
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: PR build | |
on: | |
pull_request: | |
branches: [main] | |
env: | |
REGISTRY: ghcr.io | |
NAMESPACE: galasa-dev | |
IMAGE_TAG: main | |
jobs: | |
build-obr: | |
name: Build OBR using galasabld image and maven | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
with: | |
path: obr | |
- name: Checkout framework | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{env.NAMESPACE}}/framework | |
path: framework | |
- name: Checkout managers | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{env.NAMESPACE}}/managers | |
path: managers | |
- name: Checkout extensions | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{env.NAMESPACE}}/extensions | |
path: extensions | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '11' | |
distribution: 'semeru' | |
cache: maven | |
- name: Print githash | |
run: | | |
echo $GITHUB_SHA > ./obr.githash | |
- name: Make secrets directory | |
run : | | |
mkdir /home/runner/work/secrets | |
- name: Copy settings.xml | |
env: | |
MAVEN_SETTINGS_XML: ${{ secrets.MAVEN_SETTINGS_XML }} | |
run : | | |
echo $MAVEN_SETTINGS_XML > /home/runner/work/secrets/settings.xml | |
- name: Copy GPG passphrase | |
env: | |
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
run : | | |
echo $GPG_PASSPHRASE > /home/runner/work/secrets/passphrase.file | |
- name: Copy GPG key | |
env: | |
GPG_KEY_BASE64: ${{ secrets.GPG_KEY }} | |
run : | | |
echo $GPG_KEY_BASE64 | base64 --decode > /home/runner/work/secrets/galasa.gpg | |
- name: Make GPG home directory and change permissions | |
run: | | |
mkdir /home/runner/work/gpg | |
chmod '700' /home/runner/work/gpg | |
- name: Import GPG | |
run: | | |
gpg --homedir /home/runner/work/gpg --pinentry-mode loopback --passphrase-file /home/runner/work/secrets/passphrase.file --import /home/runner/work/secrets/galasa.gpg | |
- name: Copy custom settings.xml | |
run: | | |
cp /home/runner/work/secrets/settings.xml /home/runner/work/gpg/settings.xml | |
- 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 | |
- name: Display Galasa BOM pom.xml | |
run: | | |
cat ${{github.workspace}}/obr/galasa-bom/pom.xml | |
- name: Build Galasa BOM with maven | |
run: | | |
mvn -f ${{github.workspace}}/obr/galasa-bom/pom.xml deploy -Dgpg.skip=true \ | |
-Dgalasa.source.repo=https://development.galasa.dev/gh/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 | |
- name: Display Galasa OBR pom.xml | |
run: | | |
cat ${{github.workspace}}/obr/dev.galasa.uber.obr/pom.xml | |
- name: Build Galasa OBR with maven | |
run: | | |
mvn -f ${{github.workspace}}/obr/dev.galasa.uber.obr/pom.xml deploy -Dgpg.skip=true \ | |
-Dgalasa.source.repo=https://development.galasa.dev/gh/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: Build OBR image for testing | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: ${{github.workspace}}/obr/dockerfiles/dockerfile.obr | |
load: true | |
tags: obr:test | |
build-args: | | |
dockerRepository=${{env.REGISTRY}} | |
tag=${{env.IMAGE_TAG}} | |
build-obr-javadocs: | |
name: Build OBR javadocs using galasabld image and maven | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
with: | |
path: obr | |
- name: Checkout framework | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{env.NAMESPACE}}/framework | |
path: framework | |
- name: Checkout managers | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{env.NAMESPACE}}/managers | |
path: managers | |
- name: Checkout extensions | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{env.NAMESPACE}}/extensions | |
path: extensions | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '18' | |
distribution: 'semeru' | |
cache: maven | |
- name: Make secrets directory | |
run : | | |
mkdir /home/runner/work/secrets | |
- name: Copy settings.xml | |
env: | |
MAVEN_SETTINGS_XML: ${{ secrets.MAVEN_SETTINGS_XML }} | |
run : | | |
echo $MAVEN_SETTINGS_XML > /home/runner/work/secrets/settings.xml | |
- name: Copy GPG passphrase | |
env: | |
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
run : | | |
echo $GPG_PASSPHRASE > /home/runner/work/secrets/passphrase.file | |
- name: Copy GPG key | |
env: | |
GPG_KEY_BASE64: ${{ secrets.GPG_KEY }} | |
run : | | |
echo $GPG_KEY_BASE64 | base64 --decode > /home/runner/work/secrets/galasa.gpg | |
- name: Make GPG home directory and change permissions | |
run: | | |
mkdir /home/runner/work/gpg | |
chmod '700' /home/runner/work/gpg | |
- name: Import GPG | |
run: | | |
gpg --homedir /home/runner/work/gpg --pinentry-mode loopback --passphrase-file /home/runner/work/secrets/passphrase.file --import /home/runner/work/secrets/galasa.gpg | |
- name: Copy custom settings.xml | |
run: | | |
cp /home/runner/work/secrets/settings.xml /home/runner/work/gpg/settings.xml | |
- 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 | |
- name: Display Galasa Javadoc pom.xml | |
run: | | |
cat ${{github.workspace}}/obr/javadocs/pom.xml | |
- name: Build javadoc site using maven | |
run: | | |
mvn -f ${{github.workspace}}/obr/javadocs/pom.xml deploy -Dgpg.skip=true \ | |
-Dgalasa.source.repo=https://development.galasa.dev/gh/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 \ | |
--settings /home/runner/work/gpg/settings.xml | |
- name: Build javadocsite Image for testing | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: ${{github.workspace}}/obr/dockerfiles/dockerfile.javadocsite | |
load: true | |
tags: javadocsite:test | |
- name: Build Javadoc Maven repo Image for testing | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: ${{github.workspace}}/obr/dockerfiles/dockerfile.javadocmavenrepo | |
load: true | |
tags: javadocmavenrepo:test | |
build-args: | | |
dockerRepository=${{env.REGISTRY}} | |
baseVersion=latest |