Skip to content
This repository has been archived by the owner on Nov 4, 2024. It is now read-only.

Commit

Permalink
Merge branch 'main' into sdv-readme
Browse files Browse the repository at this point in the history
  • Loading branch information
Mark-J-Lawrence authored Sep 30, 2024
2 parents cc45978 + 3fa1a3a commit 041c2ac
Show file tree
Hide file tree
Showing 359 changed files with 2,993 additions and 4,991 deletions.
184 changes: 184 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
#
# Copyright contributors to the Galasa project
#
# SPDX-License-Identifier: EPL-2.0
#
name: Main build

on:
workflow_dispatch:
inputs:
jacocoEnabled:
description: 'Enable Jacoco code coverage (set to "false" for release builds)'
required: true
default: 'true'
type: choice
options:
- 'true'
- 'false'
isMainOrRelease:
description: 'This build is for the main branch or a release (set to "false" for development branch builds)'
required: true
default: 'true'
type: choice
options:
- 'true'
- 'false'
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-managers:
name: Build Managers source code and Docker image for development Maven registry
runs-on: ubuntu-latest

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

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

- name: Print githash
run: |
echo $GITHUB_SHA > ./managers.githash
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
gradle-version: 8.9
cache-disabled: true

- name: Build Managers source code
if: github.event_name == 'push'
env:
GITHUB_ACTOR: ${{ github.actor }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.GPG_KEYID }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_PASSPHRASE }}
run: |
set -o pipefail
gradle -b galasa-managers-parent/build.gradle check publish --info \
--no-daemon --console plain \
-Dorg.gradle.jvmargs=-Xmx4096M \
-PsourceMaven=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/extensions \
-PcentralMaven=https://repo.maven.apache.org/maven2/ \
-PtargetMaven=${{ github.workspace }}/repo \
-PjacocoEnabled=true \
-PisMainOrRelease=true 2>&1 | tee build.log
- name: Build Managers source code
if: github.event_name == 'workflow_dispatch' # Use the input values provided by the workflow dispatch.
env:
GITHUB_ACTOR: ${{ github.actor }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.GPG_KEYID }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_PASSPHRASE }}
run: |
set -o pipefail
gradle -b galasa-managers-parent/build.gradle check publish --info \
--no-daemon --console plain \
-Dorg.gradle.jvmargs=-Xmx4096M \
-PsourceMaven=https://development.galasa.dev/${{ env.BRANCH }}/maven-repo/extensions \
-PcentralMaven=https://repo.maven.apache.org/maven2/ \
-PtargetMaven=${{ github.workspace }}/repo \
-PjacocoEnabled=${{ inputs.jacocoEnabled }} \
-PisMainOrRelease=${{ inputs.isMainOrRelease }} 2>&1 | tee build.log
- name: Upload Gradle Build Log
if: failure()
uses: actions/upload-artifact@v4
with:
name: gradle-build-log
path: build.log
retention-days: 7

- name: Upload Jacoco Report
if: failure()
uses: actions/upload-artifact@v4
with:
name: jacoco-report
path: ${{ github.workspace }}/galasa-managers-parent/**/**/build/reports/**/*.html
retention-days: 7
if-no-files-found: ignore

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

- name: Build Managers image for development Maven registry
id: build
uses: docker/build-push-action@v5
with:
context: .
file: dockerfiles/dockerfile
push: true
tags: ${{ steps.metadata.outputs.tags }}
labels: ${{ steps.metadata.outputs.labels }}
build-args: |
dockerRepository=ghcr.io
tag=${{ env.BRANCH }}
- 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 managers-${{ 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 }}-maven-repos --resource apps:Deployment:managers-${{ env.BRANCH }} --health --server argocd.galasa.dev
trigger-obr-workflow:
name: Trigger OBR workflow
runs-on: ubuntu-latest
needs: build-managers

steps:
- name: Trigger OBR workflow dispatch event with GitHub CLI
env:
GH_TOKEN: ${{ secrets.GALASA_TEAM_GITHUB_TOKEN }}
run: |
gh workflow run build.yaml --repo https://github.com/galasa-dev/obr --ref ${{ env.BRANCH }}
report-failure:
name: Report failure in workflow
runs-on: ubuntu-latest
needs: [log-github-ref, build-managers, trigger-obr-workflow]
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 "managers" --workflowName "${{ github.workflow }}" --workflowRunNum "${{ github.run_id }}" --ref "${{ env.BRANCH }}" --hook "${{ env.SLACK_WEBHOOK }}"
74 changes: 74 additions & 0 deletions .github/workflows/pr-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
#
# Copyright contributors to the Galasa project
#
# SPDX-License-Identifier: EPL-2.0
#
name: PR build

on:
pull_request:
branches: [main]

jobs:
build-managers:
name: Build Managers source code and Docker image
runs-on: ubuntu-latest

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

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

- name: Print githash
run: |
echo $GITHUB_SHA > ./managers.githash
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
gradle-version: 8.9
cache-disabled: true

- name: Build Managers source code
run: |
set -o pipefail
gradle -b galasa-managers-parent/build.gradle check publish --info \
--no-daemon --console plain \
-Dorg.gradle.jvmargs=-Xmx4096M \
-PsourceMaven=https://development.galasa.dev/main/maven-repo/extensions \
-PcentralMaven=https://repo.maven.apache.org/maven2/ \
-PtargetMaven=${{ github.workspace }}/repo 2>&1 | tee build.log
- name: Upload Gradle Build Log
if: failure()
uses: actions/upload-artifact@v4
with:
name: gradle-build-log
path: build.log
retention-days: 7

- name: Upload Jacoco Report
if: failure()
uses: actions/upload-artifact@v4
with:
name: jacoco-report
path: ${{ github.workspace }}/galasa-managers-parent/**/**/build/reports/**/*.html
retention-days: 7
if-no-files-found: ignore

- name: Build Managers image for testing
uses: docker/build-push-action@v5
with:
context: .
file: dockerfiles/dockerfile
load: true
tags: managers:test
build-args: |
dockerRepository=ghcr.io
tag=main
13 changes: 12 additions & 1 deletion .secrets.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,18 @@
"name": "TwilioKeyDetector"
}
],
"results": {},
"results": {
"galasa-managers-parent/galasa-managers-database-parent/dev.galasa.db2.manager.ivt/README.md": [
{
"hashed_secret": "22199ec38c6bedb7616f8e42aa3ad6e9f196cd24",
"is_secret": false,
"is_verified": false,
"line_number": 114,
"type": "Secret Keyword",
"verified_result": null
}
]
},
"version": "0.13.1+ibm.62.dss",
"word_list": {
"file": null,
Expand Down
16 changes: 16 additions & 0 deletions build-locally.sh
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,23 @@ function check_secrets {
success "secrets audit complete"
}

function update_release_yaml {
h2 "Updating release.yaml"

# After running 'gradle build', a release.yaml file should have been automatically generated
generated_release_yaml="${BASEDIR}/galasa-managers-parent/build/release.yaml"
current_release_yaml="${BASEDIR}/release.yaml"

if [[ -f ${generated_release_yaml} ]]; then
cp ${generated_release_yaml} ${current_release_yaml}
success "Updated release.yaml OK"
else
warn "Failed to automatically generate release.yaml, please ensure any changed bundles have had their versions updated in ${current_release_yaml}"
fi
}


build_code
update_release_yaml

check_secrets
6 changes: 6 additions & 0 deletions dockerfiles/dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ARG dockerRepository
ARG tag
FROM ${dockerRepository}/galasa-dev/extensions-maven-artefacts:${tag}

COPY repo/ /usr/local/apache2/htdocs/
COPY managers.githash /usr/local/apache2/htdocs/managers.githash
Loading

0 comments on commit 041c2ac

Please sign in to comment.