refactor: change ci from jenkins -> GH actions

main
sgoudham 2 years ago
parent a5cf168fe9
commit d1197950d8
Signed by: hammy
GPG Key ID: 44E818FD5457EEA4

@ -0,0 +1,62 @@
name: Build
on:
push:
branches: '**'
paths:
- 'src/**'
- 'pom.xml'
pull_request:
branches: '**'
paths:
- 'src/**'
- 'pom.xml'
workflow_dispatch:
jobs:
publish:
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:
path: ./target/${{ env.NAME }}-${{ env.VERSION }}.jar
- name: Archive Javadoc
uses: actions/upload-artifact@v3
with:
path: ./target/${{ env.NAME }}-${{ env.VERSION }}-javadoc.jar
- name: Archive Sources
uses: actions/upload-artifact@v3
with:
path: ./target/${{ env.NAME }}-${{ env.VERSION }}-sources.jar

@ -0,0 +1,72 @@
name: Deploy
on:
push:
tags:
- "v*" # Push events to matching v*, i.e. v1.0, v20.15.10
workflow_dispatch:
jobs:
publish:
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: sgoudham
server-password: ${{ secrets.OSSRH_PASSWORD }}
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
gpg-passphrase: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
- name: Build
run: mvn -B -DskipTests clean package
- 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: Deploy
env:
OSSRH_USERNAME: sgoudham
OSSRH_TOKEN: ${{ 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:
path: ./target/${{ env.NAME }}-${{ env.VERSION }}.jar
- name: Archive Javadoc
uses: actions/upload-artifact@v3
with:
path: ./target/${{ env.NAME }}-${{ env.VERSION }}-javadoc.jar
- name: Archive Sources
uses: actions/upload-artifact@v3
with:
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,9 +0,0 @@
FROM maven:3.8.1-adoptopenjdk-11
MAINTAINER Goudham Suresh
RUN apt-get update && apt-get install -y \
gpg \
xvfb \
libxrender1 libxtst6 libxi6 libxext6
RUN /usr/bin/Xvfb :99 &
RUN export DISPLAY=:99

79
Jenkinsfile vendored

@ -1,79 +0,0 @@
pipeline {
agent {
dockerfile {
args '-u root'
}
}
environment {
CODECOV_TOKEN = credentials('ea3e54d7-7f4f-40ed-af70-d8132e1c405b')
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 {
wrap([$class: 'Xvfb']) {
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()
}
}
}

@ -1,18 +1,10 @@
[license]: https://img.shields.io/github/license/sgoudham/MyClipboard
[maven-central]: https://img.shields.io/maven-central/v/me.goudham/MyClipboard.svg?label=Maven%20Central
[build-status]: https://goudham.me/jenkins/job/sgoudham/job/MyClipboard/job/release/badge/icon
[build-status]: https://img.shields.io/github/checks-status/sgoudham/MyClipboard/main
[codecov]: https://codecov.io/gh/sgoudham/MyClipboard/branch/main/graph/badge.svg?token=F4LKql7rIq
[issues]: https://img.shields.io/github/issues/sgoudham/MyClipboard?label=issues
[pull-requests]: https://img.shields.io/github/issues-pr/sgoudham/MyClipboard
[fossa]: https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsgoudham%2FMyClipboard.svg?type=shield
![fossa]
![license]
![maven-central]
![build-status]
![codecov]
![issues]
![pull-requests]
# MyClipboard
Utility Library to Access and Manipulate the Default System Clipboard
@ -126,4 +118,4 @@ dependencies {
```
# License
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsgoudham%2FMyClipboard.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsgoudham%2FMyClipboard?ref=badge_large)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsgoudham%2FMyClipboard.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsgoudham%2FMyClipboard?ref=badge_large)

@ -56,19 +56,19 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.2</version>
<version>5.9.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.7.2</version>
<version>5.9.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.11.2</version>
<version>4.11.0</version>
<scope>test</scope>
</dependency>
<dependency>
@ -80,13 +80,13 @@
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>21.0.1</version>
<version>23.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.0-alpha2</version>
<version>2.0.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@ -186,4 +186,4 @@
</plugin>
</plugins>
</build>
</project>
</project>
Loading…
Cancel
Save