refactor: move from jenkins -> gh actions
parent
6c917bd40d
commit
751003e7f9
@ -0,0 +1,65 @@
|
|||||||
|
name: Build
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: '**'
|
||||||
|
paths:
|
||||||
|
- 'src/**'
|
||||||
|
- 'pom.xml'
|
||||||
|
pull_request:
|
||||||
|
branches: '**'
|
||||||
|
paths:
|
||||||
|
- 'src/**'
|
||||||
|
- 'pom.xml'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Java
|
||||||
|
uses: actions/setup-java@v3
|
||||||
|
with:
|
||||||
|
distribution: 'temurin'
|
||||||
|
java-version: '11'
|
||||||
|
cache: 'maven'
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: mvn -B -DskipTests clean package
|
||||||
|
|
||||||
|
- name: Test
|
||||||
|
run: mvn test
|
||||||
|
|
||||||
|
- name: Upload Coverage to Codecov
|
||||||
|
uses: codecov/codecov-action@v3
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
directory: ./target/site/jacoco
|
||||||
|
files: jacoco.xml
|
||||||
|
fail_ci_if_error: false
|
||||||
|
|
||||||
|
- name: Retrieve Name & Version
|
||||||
|
run: |
|
||||||
|
echo "VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
|
||||||
|
echo "NAME=$(mvn help:evaluate -Dexpression=project.name -q -DforceStdout)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Archive Jar
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ env.NAME }}-${{ env.VERSION }}.jar
|
||||||
|
path: ./target/${{ env.NAME }}-${{ env.VERSION }}.jar
|
||||||
|
|
||||||
|
- name: Archive Javadoc
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ env.NAME }}-${{ env.VERSION }}-javadoc.jar
|
||||||
|
path: ./target/${{ env.NAME }}-${{ env.VERSION }}-javadoc.jar
|
||||||
|
|
||||||
|
- name: Archive Sources
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ env.NAME }}-${{ env.VERSION }}-sources.jar
|
||||||
|
path: ./target/${{ env.NAME }}-${{ env.VERSION }}-sources.jar
|
@ -0,0 +1,66 @@
|
|||||||
|
name: Deploy
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "v*" # Push events to matching v*, i.e. v1.0, v20.15.10
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Java
|
||||||
|
uses: actions/setup-java@v3
|
||||||
|
with:
|
||||||
|
distribution: 'temurin'
|
||||||
|
java-version: '11'
|
||||||
|
cache: 'maven'
|
||||||
|
server-id: ossrh
|
||||||
|
server-username: OSSRH_USERNAME
|
||||||
|
server-password: OSSRH_PASSWORD
|
||||||
|
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
|
||||||
|
gpg-passphrase: MAVEN_GPG_PASSPHRASE
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: mvn -B -DskipTests clean package
|
||||||
|
|
||||||
|
- name: Deploy
|
||||||
|
env:
|
||||||
|
OSSRH_USERNAME: sgoudham
|
||||||
|
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
|
||||||
|
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
|
||||||
|
run: mvn -B -DskipTests deploy
|
||||||
|
|
||||||
|
- name: Get Name & Version
|
||||||
|
run: |
|
||||||
|
echo "VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
|
||||||
|
echo "NAME=$(mvn help:evaluate -Dexpression=project.name -q -DforceStdout)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Archive Jar
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ env.NAME }}-${{ env.VERSION }}.jar
|
||||||
|
path: ./target/${{ env.NAME }}-${{ env.VERSION }}.jar
|
||||||
|
|
||||||
|
- name: Archive Javadoc
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ env.NAME }}-${{ env.VERSION }}-javadoc.jar
|
||||||
|
path: ./target/${{ env.NAME }}-${{ env.VERSION }}-javadoc.jar
|
||||||
|
|
||||||
|
- name: Archive Sources
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ env.NAME }}-${{ env.VERSION }}-sources.jar
|
||||||
|
path: ./target/${{ env.NAME }}-${{ env.VERSION }}-sources.jar
|
||||||
|
|
||||||
|
- name: Create Release
|
||||||
|
uses: ncipollo/release-action@v1
|
||||||
|
with:
|
||||||
|
artifacts: target/*.jar
|
||||||
|
generateReleaseNotes: true
|
||||||
|
makeLatest: true
|
||||||
|
draft: true
|
@ -1,4 +0,0 @@
|
|||||||
FROM maven:3.8.1-adoptopenjdk-11
|
|
||||||
MAINTAINER Goudham Suresh
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y gpg
|
|
@ -1,77 +0,0 @@
|
|||||||
pipeline {
|
|
||||||
agent {
|
|
||||||
dockerfile {
|
|
||||||
args '-u root'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
environment {
|
|
||||||
CODECOV_TOKEN = credentials('44a3c021-5cbb-4a6f-bea2-ae6c51d43038')
|
|
||||||
|
|
||||||
GPG_SECRET_KEY = credentials('4dbfd4ed-bba4-44e0-8410-fbce1a9bba73')
|
|
||||||
GPG_OWNER_TRUST = credentials('8703bbe8-c099-481f-8337-1dce32d51771')
|
|
||||||
}
|
|
||||||
|
|
||||||
stages {
|
|
||||||
stage("Import GPG Keys") {
|
|
||||||
when {
|
|
||||||
branch 'release'
|
|
||||||
}
|
|
||||||
steps {
|
|
||||||
sh 'gpg --batch --import $GPG_SECRET_KEY'
|
|
||||||
sh 'gpg --import-ownertrust $GPG_OWNER_TRUST'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage("Build") {
|
|
||||||
steps {
|
|
||||||
withCredentials([file(credentialsId: '076a36e8-d448-46fc-af11-7e7181a6cb99', variable: 'MAVEN_SETTINGS')]) {
|
|
||||||
sh 'mvn -s $MAVEN_SETTINGS -B -DskipTests clean package'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage("Test") {
|
|
||||||
steps {
|
|
||||||
sh "mvn test"
|
|
||||||
}
|
|
||||||
post {
|
|
||||||
success {
|
|
||||||
echo "Generating Test Report..."
|
|
||||||
publishCoverage adapters: [jacocoAdapter('target/site/jacoco/jacoco.xml')]
|
|
||||||
|
|
||||||
echo "Sending Report to CodeCov..."
|
|
||||||
sh '''#!/bin/bash
|
|
||||||
bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN || echo "Codecov did not collect coverage reports"
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage("Deploy To OSSRH") {
|
|
||||||
when {
|
|
||||||
branch 'release'
|
|
||||||
}
|
|
||||||
steps {
|
|
||||||
withCredentials([file(credentialsId: '076a36e8-d448-46fc-af11-7e7181a6cb99', variable: 'MAVEN_SETTINGS')]) {
|
|
||||||
sh 'mvn -s $MAVEN_SETTINGS -B -DskipTests clean deploy'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
post {
|
|
||||||
success {
|
|
||||||
echo "Archiving Artifacts"
|
|
||||||
archiveArtifacts artifacts: 'target/*.jar'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
post {
|
|
||||||
success {
|
|
||||||
echo "I'm Feeling Swag!"
|
|
||||||
}
|
|
||||||
failure {
|
|
||||||
echo 'Not Very Swag :('
|
|
||||||
}
|
|
||||||
cleanup {
|
|
||||||
cleanWs()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue