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

Iss1943 - GitHub Actions build for Simplatform repo #163

Merged
merged 2 commits into from
Sep 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
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
129 changes: 129 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
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 ${{ env.BRANCH }}-simplatform restart --kind Deployment --resource-name simplatform-${{ env.BRANCH }} --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 ${{ env.BRANCH }}-simplatform --resource apps:Deployment:simplatform-${{ env.BRANCH }} --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>