Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added GitHub Action pipeline YAML for automated deployment #23

Merged
merged 1 commit into from
Oct 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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}
Loading