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

GitHub Actions workflow for Gradle #38

Merged
merged 17 commits into from
Jul 23, 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
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
Loading