Skip to content

Commit

Permalink
Add standardized CICD pipeline.
Browse files Browse the repository at this point in the history
Signed-off-by: Łukasz Dywicki <luke@code-house.org>
  • Loading branch information
splatch committed Jan 31, 2024
1 parent ecb9d50 commit a9934f2
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 119 deletions.
48 changes: 0 additions & 48 deletions .github/workflows/maven.yml

This file was deleted.

20 changes: 20 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Build pull request

on:
pull_request:
branches: [ "master" ]

jobs:
build:
permissions:
checks: write
contents: read
uses: 'connectorio/gh-actions-shared/.github/workflows/maven.yml@master'
secrets:
CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }}
CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }}
with:
openhab: false
server_id: thing4-snapshots
deploy: true
skip_test_publish: true
20 changes: 20 additions & 0 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Build pushed commit

on:
push:
branches: [ "master" ]

jobs:
build:
permissions:
checks: write
contents: read
uses: 'connectorio/gh-actions-shared/.github/workflows/maven.yml@master'
secrets:
CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }}
CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }}
with:
openhab: false
server_id: sonatype-nexus-snapshots
deploy: true
skip_test_publish: true
97 changes: 29 additions & 68 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,77 +1,38 @@
name: Maven release
name: Release artifacts

on:
workflow_dispatch:
inputs:
releaseVersion:
description: "Release version."
release_version:
description: 'The version to be released from actual HEAD revision'
required: false
default: 'X.Y.Z'
development_version:
description: 'Version to be set as next, after release is made (appends commit to HEAD revision)'
required: false
default: 'X.Y.Z-SNAPSHOT'
perform_version:
description: 'Tag which should be used to perform release and publish its artifacts'
required: false
dry_run:
description: 'Should execution abstain from mutating repository/remote state?'
required: true
default: "X.Y.Z"
developmentVersion:
description: "Version to which working copy should be set after release."
required: true
default: "X.Y.Z-SNAPSHOT"
dryRun:
description: "Should release be done in dry-run mode."
required: true
default: "true"
default: 'true'

jobs:
release:
runs-on: ubuntu-latest
build:
permissions:
contents: write
steps:
- uses: actions/checkout@v3
- name: Setup git
run: |
git config user.email "ci@connectorio.com"
git config user.name "ConnectorIO Bot"
git config --global url."https://${BUILD_USER}:${BUILD_TOKEN}@github.com/".insteadOf "git@github.com:"
env:
BUILD_USER: x-access-token
BUILD_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'
server-id: sonatype-nexus-staging
server-username: CI_RELEASE_USERNAME
server-password: CI_RELEASE_PASSWORD
gpg-passphrase: GPG_PASSPHRASE
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
- name: Cache local Maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Dump env
run: >-
env && cat ~/.m2/settings.xml
env:
CI_RELEASE_USERNAME: ${{ secrets.CI_RELEASE_USERNAME }}
CI_RELEASE_PASSWORD: ${{ secrets.CI_RELEASE_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
- name: Maven Prepare Release
run: >-
mvn -B
release:prepare -DpreparationProfiles=release
-DreleaseVersion=${{ inputs.releaseVersion }}
-DdevelopmentVersion=${{ inputs.developmentVersion }}
-DdryRun=${{ inputs.dryRun }}
- name: Maven Perform Release
if: success()
run: >-
mvn -B
release:perform -DreleaseProfiles=release
env:
CI_RELEASE_USERNAME: ${{ secrets.CI_RELEASE_USERNAME }}
CI_RELEASE_PASSWORD: ${{ secrets.CI_RELEASE_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
- name: Rollback on failure
if: failure()
run: |
mvn -B release:rollback
echo "You may need to manually delete the git tag, if it was created."
uses: 'connectorio/gh-actions-shared/.github/workflows/release.yml@master'
secrets:
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
CI_RELEASE_USERNAME: ${{ secrets.CI_RELEASE_USERNAME }}
CI_RELEASE_PASSWORD: ${{ secrets.CI_RELEASE_PASSWORD }}
with:
openhab: false
server_id: sonatype-nexus-staging
release_version: ${{ inputs.release_version }}
development_version: ${{ inputs.development_version }}
perform_version: ${{ inputs.perform_version }}
dry_run: ${{ inputs.dry_run }}
4 changes: 1 addition & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,9 @@
<groupId>org.connectorio</groupId>
<artifactId>connectorio-oss</artifactId>
<version>5-SNAPSHOT</version>

<name>ConnectorIO | OSS Parent</name>
<packaging>pom</packaging>

<!-- Information about project -->
<name>ConnectorIO | OSS Parent</name>
<description>Parent project for open source components developed by ConnectorIO.</description>

<url>http://connectorio.org</url>
Expand Down

0 comments on commit a9934f2

Please sign in to comment.