Skip to content

Commit

Permalink
GitHub Actions build for Simplatform repo
Browse files Browse the repository at this point in the history
Signed-off-by: Jade Carino <[email protected]>
  • Loading branch information
jadecarino committed Sep 27, 2024
1 parent dc512e5 commit 0fcd5fc
Show file tree
Hide file tree
Showing 5 changed files with 247 additions and 0 deletions.
128 changes: 128 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
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-simplatform:
name: Building Simplatform web application and tests
runs-on: ubuntu-latest

steps:
- name: Checkout Code
uses: actions/checkout@v4

- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'semeru'

- name: Print Githash
run: |
echo $GITHUB_SHA > ./simplatform.githash
- name: Building galasa-simplatform-application using maven
run: |
set -o pipefail
mvn -f galasa-simplatform-application/pom.xml deploy -X \
-Dgalasa.source.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \
-Dgalasa.release.repo=file:${{ github.workspace }}/repo \
--batch-mode --errors --fail-at-end \
--settings ${{ github.workspace }}/settings.xml 2>&1 | tee galasa-simplatform-application-build.log
- name: Upload galasa-simplatform-application Maven Build Log
if: failure()
uses: actions/upload-artifact@v4
with:
name: galasa-simplatform-application-build-log
path: galasa-simplatform-application-build.log
retention-days: 7

- name: Building galasa-simbank-tests using maven
run: |
set -o pipefail
mvn -f galasa-simbank-tests/pom.xml deploy -X \
-Dgalasa.source.repo=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/obr \
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \
-Dgalasa.release.repo=file:${{ github.workspace }}/repo \
--batch-mode --errors --fail-at-end \
--settings ${{ github.workspace }}/settings.xml 2>&1 | tee galasa-simbank-tests-build.log
- name: Upload galasa-simbank-tests Maven Build Log
if: failure()
uses: actions/upload-artifact@v4
with:
name: galasa-simbank-tests-build-log
path: galasa-simbank-tests-build.log
retention-days: 7

- 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 Simplatform maven artefacts image
id: metadata-simplatform
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/simplatform-maven-artefacts

- name: Build Simplatform image for development Maven registry
id: build-simplatform
uses: docker/build-push-action@v5
with:
context: .
file: dockerfiles/dockerfile.simplatform
push: true
tags: ${{ steps.metadata-simplatform.outputs.tags }}
labels: ${{ steps.metadata-simplatform.outputs.labels }}
build-args: |
baseVersion=latest
dockerRepository=ghcr.io
branch=${{ env.BRANCH }}
- name: Extract metadata for Simplatform jar image
id: metadata-simplatform-jar
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/simplatform-jar

- name: Build simplatform jar image
id: build-simplatform-jar
uses: docker/build-push-action@v5
with:
context: .
file: dockerfiles/dockerfile.simplatform-amd64
push: true
tags: ${{ steps.metadata-simplatform-jar.outputs.tags }}
labels: ${{ steps.metadata-simplatform-jar.outputs.labels }}

- 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 gh-simplatform restart --kind Deployment --resource-name simplatform-gh --server argocd.galasa.dev
- name: Wait for app 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 gh-simplatform --resource apps:Deployment:simplatform-gh --health --server argocd.galasa.dev
81 changes: 81 additions & 0 deletions .github/workflows/pr-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: PR build

on:
pull_request:
branches: [main]

jobs:
build-simplatform:
name: Build Simplatform web application and tests
runs-on: ubuntu-latest

steps:
- name: Checkout Code
uses: actions/checkout@v4

- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'semeru'

- name: Print Githash
run: |
echo $GITHUB_SHA > ./simplatform.githash
- name: Building galasa-simplatform-application using maven
run: |
set -o pipefail
mvn -f galasa-simplatform-application/pom.xml deploy -X \
-Dgpg.skip=true \
-Dgalasa.source.repo=https://development.galasa.dev/main/maven-repo/obr \
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \
-Dgalasa.release.repo=file:${{ github.workspace }}/repo \
--batch-mode --errors --fail-at-end \
--settings ${{ github.workspace }}/settings.xml 2>&1 | tee galasa-simplatform-application-build.log
- name: Upload galasa-simplatform-application Maven Build Log
if: failure()
uses: actions/upload-artifact@v4
with:
name: galasa-simplatform-application-build-log
path: galasa-simplatform-application-build.log
retention-days: 7

- name: Building galasa-simbank-tests using maven
run: |
set -o pipefail
mvn -f galasa-simbank-tests/pom.xml deploy -X \
-Dgpg.skip=true \
-Dgalasa.source.repo=https://development.galasa.dev/main/maven-repo/obr \
-Dgalasa.central.repo=https://repo.maven.apache.org/maven2/ \
-Dgalasa.release.repo=file:${{ github.workspace }}/repo \
--batch-mode --errors --fail-at-end \
--settings ${{ github.workspace }}/settings.xml 2>&1 | tee galasa-simbank-tests-build.log
- name: Upload galasa-simbank-tests Maven Build Log
if: failure()
uses: actions/upload-artifact@v4
with:
name: galasa-simbank-tests-build-log
path: galasa-simbank-tests-build.log
retention-days: 7

- name: Build Simplatform image for testing
uses: docker/build-push-action@v5
with:
context: .
file: dockerfiles/dockerfile.simplatform
load: true
tags: simplatform-maven-artefacts:test
build-args: |
baseVersion=latest
dockerRepository=ghcr.io
branch=main
- name: Build Simplatform jar image for testing
uses: docker/build-push-action@v5
with:
context: .
file: dockerfiles/dockerfile.simplatform-amd64
load: true
tags: simplatform-jar:test
11 changes: 11 additions & 0 deletions dockerfiles/dockerfile.simplatform
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
ARG baseVersion
ARG dockerRepository
FROM ${dockerRepository}/galasa-dev/base-image:${baseVersion}

ARG branch

RUN sed -i "s/--branchname--/${branch}/" /usr/local/apache2/conf/httpd.conf
RUN sed -i 's/--repositoryname--/simplatform/' /usr/local/apache2/conf/httpd.conf

COPY repo/ /usr/local/apache2/htdocs/
COPY simplatform.githash /usr/local/apache2/htdocs/simplatform.githash
20 changes: 20 additions & 0 deletions dockerfiles/dockerfile.simplatform-amd64
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM harbor.galasa.dev/docker_proxy_cache/library/openjdk:11-jdk

RUN mkdir /galasa

RUN useradd -u 1000 -d /galasa galasa && \
chown -R galasa:galasa /galasa

WORKDIR /galasa

USER galasa

COPY galasa-simplatform-application/galasa-simplatform-3270/target/galasa-simplatform-0.24.0.jar /galasa/simplatform.jar

VOLUME /galasa/.galasa
VOLUME /galasa/load

EXPOSE 2080/tcp
EXPOSE 2023/tcp
EXPOSE 2027/tcp
EXPOSE 2040/tcp
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,12 @@

<build>
<finalName>galasa-simplatform-webapp</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
</plugins>
</build>
</project>

0 comments on commit 0fcd5fc

Please sign in to comment.