Skip to content

Commit

Permalink
Merge pull request #260 from conductor-oss/feature/client-v3-ci-build
Browse files Browse the repository at this point in the history
Initial GitHub Action workflows to build Java client/sdk v4
  • Loading branch information
jmigueprieto authored Sep 18, 2024
2 parents e40023f + 9f3706a commit 81c3840
Show file tree
Hide file tree
Showing 4 changed files with 151 additions and 1 deletion.
37 changes: 37 additions & 0 deletions .github/workflows/java-client-v4-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Java Client v4 Build

on:
push:
branches:
- main
paths:
- 'conductor-clients/java/conductor-java-sdk/**'
pull_request:
branches:
- main
paths:
- 'conductor-clients/java/conductor-java-sdk/**'
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
name: Java Client v4 Build
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Zulu JDK 17
uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: "17"
- name: Build
run: |
cd conductor-clients/java/conductor-java-sdk
./gradlew clean build -x :tests:build
- name: Publish Test Report
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: 'conductor-clients/java/**/build/test-results/test/TEST-*.xml'

70 changes: 70 additions & 0 deletions .github/workflows/java-client-v4-integration-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Java Client v4 Integration Tests

on:
workflow_run:
workflows: ["Java Client v4 Build"]
types:
- completed

jobs:
integrations-tests:
runs-on: ubuntu-latest
environment: integration-tests
if: ${{ github.event.workflow_run.conclusion == 'success' }}
name: Java Client v4 Integration test
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.workflow_run.head_sha }}
repository: ${{ github.event.workflow_run.repository.full_name }}
- name: Set up Zulu JDK 17
uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: "17"
- name: Run Integration tests
run: |
cd conductor-clients/java/conductor-java-sdk
./gradlew -p tests test
env:
CONDUCTOR_SERVER_URL: ${{ secrets.CONDUCTOR_SERVER_URL }}
CONDUCTOR_SERVER_AUTH_KEY: ${{ secrets.CONDUCTOR_SERVER_AUTH_KEY }}
CONDUCTOR_SERVER_AUTH_SECRET: ${{ secrets.CONDUCTOR_SERVER_AUTH_SECRET }}
- name: Publish Test Report
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: 'conductor-clients/java/**/build/test-results/test/TEST-*.xml'
- name: Set PR Status to Failure
if: ${{ failure() }}
uses: actions/github-script@v6
with:
script: |
const { owner, repo } = context.repo;
const sha = context.payload.workflow_run.head_sha;
await github.rest.repos.createCommitStatus({
owner: owner,
repo: repo,
sha: sha,
state: 'failure',
context: 'Java Client v4 Integration Tests',
description: 'Integration tests failed.',
});
- name: Set PR Status to Success
if: ${{ success() }}
uses: actions/github-script@v6
with:
script: |
const { owner, repo } = context.repo;
const sha = context.payload.workflow_run.head_sha;
await github.rest.repos.createCommitStatus({
owner: owner,
repo: repo,
sha: sha,
state: 'success',
context: 'Java Client v4 Integration Tests',
description: 'Integration tests succeeded.',
});
43 changes: 43 additions & 0 deletions .github/workflows/java-client-v4-publish-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

name: Publish Java Client v4 to Maven Central

on:
workflow_dispatch:
inputs:
version:
description: 'Version to publish (e.g., v1.0.0)'
required: true
maven_central:
description: 'Publish to Maven Central'
required: true
default: 'true'

jobs:
publish:
runs-on: ubuntu-latest
environment: prod
name: Gradle Build and Publish
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Set up Zulu JDK 17
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Publish
run: |
export VERSION="${{ github.event.inputs.version }}"
export CONDUCTOR_CLIENT_VERSION=`echo ${VERSION:1}`
echo Publishing version $CONDUCTOR_CLIENT_VERSION
cd conductor-clients/java/conductor-java-sdk
./gradlew publish -Pversion=$CONDUCTOR_CLIENT_VERSION -PmavenCentral=${{ github.event.inputs.maven_central }} -Pusername=${{ secrets.SONATYPE_USERNAME }} -Ppassword=${{ secrets.SONATYPE_PASSWORD }}
env:
ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.SIGNING_KEY_ID }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}

Original file line number Diff line number Diff line change
@@ -1 +1 @@
version=3.0.0-alpha16-SNAPSHOT
version=4.0.0-alpha-SNAPSHOT

0 comments on commit 81c3840

Please sign in to comment.