Skip to content

Commit

Permalink
Merge pull request #23 from mainmethod0126/gtihub-action-gradle-custo…
Browse files Browse the repository at this point in the history
…m-plugin-release

Added GitHub Action pipeline YAML for automated deployment
  • Loading branch information
mainmethod0126 authored Oct 29, 2023
2 parents 1f40b05 + b68f6b3 commit 6d16b3a
Show file tree
Hide file tree
Showing 4 changed files with 115 additions and 85 deletions.
65 changes: 0 additions & 65 deletions .github/Gradle-Custom-Plugin-Release.yml

This file was deleted.

100 changes: 100 additions & 0 deletions .github/workflows/gradle-custom-plugin-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle

name: gradle custom plugin release

on:
push:
branches:
- gtihub-action-gradle-custom-plugin-release

jobs:
build:
runs-on: ubuntu-latest
permissions: write-all

steps:
- uses: actions/checkout@v3


- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file

- name: Grant execute permission to Gradle wrapper
run: chmod +x ./gradlew

- name: Build with Gradle
uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1
with:
arguments: build

- name: read version.json
id: read_version
shell: bash
run: |
echo "${{ github.workspace }}"
cd ${{ github.workspace }}
echo "ls $(ls ${{ github.workspace }})"
# I have determined that there is no need to include metadata in the tagging information
temp_major=`node -p "const p = require('${{ github.workspace }}/app/version.json'); p.major;"`
temp_minor=`node -p "const p = require('${{ github.workspace }}/app/version.json'); p.minor;"`
temp_patch=`node -p "const p = require('${{ github.workspace }}/app/version.json'); p.patch;"`
temp_prereleaseVersion=`node -p "const p = require('${{ github.workspace }}/app/version.json'); p.prereleaseVersion;"`
# The task involves adding both '.' and '-' to the string so that dots (.) and dashes (-) can be included when combining all version information.
if [ "$temp_minor" != "" ]; then
temp_minor=".${temp_minor}"
fi
if [ "$temp_patch" != "" ]; then
temp_patch=".${temp_patch}"
fi
if [ "$temp_prereleaseVersion" != "" ]; then
temp_prereleaseVersion="-${temp_prereleaseVersion}"
fi
echo "temp_major : $temp_major"
echo "temp_minor : $temp_minor"
echo "temp_patch : $temp_patch"
echo "temp_prereleaseVersion : $temp_prereleaseVersion"
version="$temp_major$temp_minor$temp_patch$temp_prereleaseVersion"
echo "VERSION=$version" >> $GITHUB_OUTPUT
ls "${{ github.workspace }}/app/dist"
- name: create release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.read_version.outputs.VERSION }}
release_name: ${{ steps.read_version.outputs.VERSION }}
prerelease: true


- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: "${{ github.workspace }}/app/dist/gradle-semantic-versioning-manager-plugin-${{ steps.read_version.outputs.VERSION }}.jar"
asset_name: gradle-semantic-versioning-manager-plugin-${{ steps.read_version.outputs.VERSION }}.jar
asset_content_type: application/jar
34 changes: 14 additions & 20 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,27 @@
* User Manual available at https://docs.gradle.org/7.3/userguide/building_java_projects.html
*/

// buildscript {
// repositories {
// jcenter()
// }
// dependencies {
// classpath "gradle.plugin.com.github.johnrengelman:shadow:7.1.2"
// }
// }
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "io.github.mainmethod0126:app:0.1.4"
}
}

plugins {
// Apply the application plugin to add support for building a CLI application in Java.
id 'application'
id 'com.gradle.plugin-publish' version '1.1.0'
id 'com.github.johnrengelman.shadow' version '7.1.2'
id 'java-gradle-plugin'
}





// apply plugin: 'com.github.johnrengelman.shadow'

apply plugin: "io.github.mainmethod0126.simple-semantic-version"

group = 'io.github.mainmethod0126'
version = "0.1.4"
sourceCompatibility = 11
targetCompatibility = 11

Expand Down Expand Up @@ -67,12 +62,11 @@ repositories {
}


shadowJar {
baseName = "gradle-semantic-versioning-manager-plugin"
version = version
classifier = null
jar {
archiveBaseName = "gradle-semantic-versioning-manager-plugin"
}


tasks.withType(Test).configureEach {
it.jvmArgs = ["--add-opens=java.base/java.lang=ALL-UNNAMED"]
}
Expand Down
1 change: 1 addition & 0 deletions version.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"patch":5,"buildMetadata":"","prereleaseVersion":"","major":0,"minor":1}

0 comments on commit 6d16b3a

Please sign in to comment.