refactor: move from jenkins -> gh actions

pull/48/head
sgoudham 2 years ago
parent 6c917bd40d
commit 751003e7f9
Signed by: hammy
GPG Key ID: 44E818FD5457EEA4

@ -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

77
Jenkinsfile vendored

@ -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()
}
}
}

@ -1,18 +1,10 @@
[license]: https://img.shields.io/github/license/sgoudham/MyWaifuWrapper
[maven-central]: https://img.shields.io/maven-central/v/me.goudham/MyWaifuWrapper
[build-status]: https://goudham.me/jenkins/job/sgoudham/job/MyWaifuWrapper/job/release/badge/icon
[build-status]: https://img.shields.io/github/checks-status/sgoudham/MyWaifuWrapper/main
[codecov]: https://codecov.io/gh/sgoudham/MyWaifuWrapper/branch/main/graph/badge.svg?token=RxUDnCWnF0
[issues]: https://img.shields.io/github/issues/sgoudham/MyWaifuWrapper?label=issues
[pull-requests]: https://img.shields.io/github/issues-pr/sgoudham/MyWaifuWrapper
[fossa]: https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsgoudham%2FMyWaifuWrapper.svg?type=shield
![fossa]
![license]
![maven-central]
![build-status]
![codecov]
![issues]
![pull-requests]
<h1 align="center">MyWaifuWrapper</h1>
<h2 align="center">An Unofficial Asynchronous Java API Wrapper for MyWaifuList</h2>
@ -147,4 +139,4 @@ dependencies {
```
## License
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsgoudham%2FMyWaifuWrapper.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsgoudham%2FMyWaifuWrapper?ref=badge_large)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsgoudham%2FMyWaifuWrapper.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsgoudham%2FMyWaifuWrapper?ref=badge_large)

@ -56,13 +56,13 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.2</version>
<version>5.9.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.4.0</version>
<version>4.11.0</version>
<scope>test</scope>
</dependency>
<dependency>
@ -73,23 +73,23 @@
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>23.0.0</version>
<version>23.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.2.2</version>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.13.2</version>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.13.2</version>
<version>2.14.0</version>
</dependency>
</dependencies>

Loading…
Cancel
Save