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

Commit

Permalink
Merge pull request #38 from galasa-dev/gh-workflow
Browse files Browse the repository at this point in the history
GitHub Actions workflow for Gradle
  • Loading branch information
jadecarino authored Jul 23, 2024
2 parents f9f2525 + d5ab672 commit 7d80d70
Show file tree
Hide file tree
Showing 8 changed files with 178 additions and 17 deletions.
76 changes: 76 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Main build

on:
workflow_dispatch:
push:
branches: [main]

env:
REGISTRY: ghcr.io
NAMESPACE: galasa-dev
BRANCH: main

jobs:
build-gradle:
name: Build Gradle 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: '11'
distribution: 'semeru'

# The githash is added to the development Maven registry to show what commit level it contains
- name: Print githash
run: |
echo $GITHUB_SHA > ./gradle.githash
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
gradle-version: 6.9.2

- name: Build Gradle source code
env:
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: |
gradle check publish --scan \
-PsourceMaven=https://repo.maven.apache.org/maven2/ \
-PcentralMaven=https://repo.maven.apache.org/maven2/ \
-PtargetMaven=${{ github.workspace }}/repo \
-PjacocoEnabled=true \
-PisMainOrRelease=true
- 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 Gradle image
id: metadata
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/gradle-maven-artefacts

- name: Build Gradle image for development Maven registry
id: build
uses: docker/build-push-action@v5
with:
context: .
file: dockerfiles/dockerfile.gradle
push: true
tags: ${{ steps.metadata.outputs.tags }}
labels: ${{ steps.metadata.outputs.labels }}
# dockerRepository will change to ghcr.io once the Wrapping image is available there
build-args: |
dockerRepository=harbor.galasa.dev
tag=${{ env.BRANCH }}
63 changes: 63 additions & 0 deletions .github/workflows/pr-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: PR build

on:
workflow_dispatch:
pull_request:
branches: [main]

env:
REGISTRY: ghcr.io
NAMESPACE: galasa-dev

jobs:
build-gradle:
name: Build Gradle 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: '11'
distribution: 'semeru'

# The githash is added to the development Maven registry to show what commit level it contains
- name: Print githash
run: |
echo $GITHUB_SHA > ./gradle.githash
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
gradle-version: 6.9.2

- name: Build Gradle source code
run: |
gradle check publish \
-PsourceMaven=https://repo.maven.apache.org/maven2/ \
-PcentralMaven=https://repo.maven.apache.org/maven2/ \
-PtargetMaven=${{ github.workspace }}/repo
- name: Extract metadata for Gradle image
id: metadata
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/gradle-maven-artefacts

# This Docker image will not be used, it's just to test that the Docker build should work
- name: Build Gradle image
id: build
uses: docker/build-push-action@v5
with:
context: .
file: dockerfiles/dockerfile.gradle
push: false
tags: ${{ steps.metadata.outputs.tags }}
labels: ${{ steps.metadata.outputs.labels }}
# dockerRepository will change to ghcr.io once the Wrapping image is available there
build-args: |
dockerRepository=harbor.galasa.dev
tag=main
16 changes: 8 additions & 8 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ group = "dev.galasa"
version = "0.33.0"

signing {
def signingKeyId = findProperty("signingKeyId")
def signingKey = findProperty("signingKey")
def signingPassword = findProperty("signingPassword")
useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
sign publishing.publications
}

Expand All @@ -27,7 +31,7 @@ allprojects {
repositories {
mavenLocal()
maven {
url "https://development.galasa.dev/main/maven-repo/wrapping/"
url "https://maven.pkg.github.com/galasa-dev/wrapping/"
}
gradlePluginPortal()
mavenCentral()
Expand Down Expand Up @@ -91,15 +95,11 @@ publishing {

if ("$targetMaven".startsWith('http')) {
credentials {
username System.getenv('MAVENUSERNAME')
password System.getenv('MAVENPASSWORD')
username System.getenv("GITHUB_ACTOR")
password System.getenv("GITHUB_TOKEN")
}
}
}
}

}




}
10 changes: 7 additions & 3 deletions dev.galasa.gradle.impl/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ repositories {
dependencies {
implementation 'org.apache.felix:org.apache.felix.bundlerepository:2.0.10'
implementation 'org.reflections:reflections:0.9.11'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.google.code.gson:gson:2.10.1'
testImplementation 'junit:junit:4.13'
implementation project(':dev.galasa.plugin.common')
implementation project(':dev.galasa.plugin.common.impl')
Expand Down Expand Up @@ -95,6 +95,10 @@ tasks.withType(Javadoc) {


signing {
def signingKeyId = findProperty("signingKeyId")
def signingKey = findProperty("signingKey")
def signingPassword = findProperty("signingPassword")
useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
sign publishing.publications
}

Expand Down Expand Up @@ -150,8 +154,8 @@ publishing {

if ("$targetMaven".startsWith('http')) {
credentials {
username System.getenv('MAVENUSERNAME')
password System.getenv('MAVENPASSWORD')
username System.getenv("GITHUB_ACTOR")
password System.getenv("GITHUB_TOKEN")
}
}
}
Expand Down
8 changes: 6 additions & 2 deletions dev.galasa.plugin.common.impl/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ tasks.withType(Javadoc) {


signing {
def signingKeyId = findProperty("signingKeyId")
def signingKey = findProperty("signingKey")
def signingPassword = findProperty("signingPassword")
useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
sign publishing.publications
}

Expand Down Expand Up @@ -98,8 +102,8 @@ publishing {

if ("$targetMaven".startsWith('http')) {
credentials {
username System.getenv('MAVENUSERNAME')
password System.getenv('MAVENPASSWORD')
username System.getenv("GITHUB_ACTOR")
password System.getenv("GITHUB_TOKEN")
}
}
}
Expand Down
8 changes: 6 additions & 2 deletions dev.galasa.plugin.common.test/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ tasks.withType(Javadoc) {


signing {
def signingKeyId = findProperty("signingKeyId")
def signingKey = findProperty("signingKey")
def signingPassword = findProperty("signingPassword")
useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
sign publishing.publications
}

Expand Down Expand Up @@ -98,8 +102,8 @@ publishing {

if ("$targetMaven".startsWith('http')) {
credentials {
username System.getenv('MAVENUSERNAME')
password System.getenv('MAVENPASSWORD')
username System.getenv("GITHUB_ACTOR")
password System.getenv("GITHUB_TOKEN")
}
}
}
Expand Down
8 changes: 6 additions & 2 deletions dev.galasa.plugin.common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,10 @@ tasks.withType(Javadoc) {
}

signing {
def signingKeyId = findProperty("signingKeyId")
def signingKey = findProperty("signingKey")
def signingPassword = findProperty("signingPassword")
useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
sign publishing.publications
}

Expand Down Expand Up @@ -122,8 +126,8 @@ publishing {

if ("$targetMaven".startsWith('http')) {
credentials {
username System.getenv('MAVENUSERNAME')
password System.getenv('MAVENPASSWORD')
username System.getenv("GITHUB_ACTOR")
password System.getenv("GITHUB_TOKEN")
}
}
}
Expand Down
6 changes: 6 additions & 0 deletions dockerfiles/dockerfile.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ARG dockerRepository
ARG tag
FROM ${dockerRepository}/galasadev/galasa-wrapping:${tag}

COPY repo/ /usr/local/apache2/htdocs/
COPY gradle.githash /usr/local/apache2/htdocs/gradle.githash

0 comments on commit 7d80d70

Please sign in to comment.