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