diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..6ca0e3c5 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,35 @@ +name: Release + +run-name: Create Release + +on: + push: + tags: + - "v*.*.*" + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + - name: Setup Java JDK + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: '11' + - name: Extract tag version + run: echo "tag=$(echo '${{ github.ref_name }}' | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')" >> $GITHUB_OUTPUT + id: extract_tag_version + - name: Build project + run: ./gradlew assemble + - name: Create Release + uses: softprops/action-gh-release@v1 + with: + token: ${{ secrets.RELEASE_ACTIONS_TOKEN }} + files: | + ./scavenger-agent-java/build/libs/scavenger-agent-java-${{ steps.extract_tag_version.outputs.tag }}.jar + ./scavenger-old-agent-java/build/libs/scavenger-old-agent-java-${{ steps.extract_tag_version.outputs.tag }}.jar + ./scavenger-api/build/libs/scavenger-api-boot-${{ steps.extract_tag_version.outputs.tag }}.jar + ./scavenger-collector/build/libs/scavenger-collector-boot-${{ steps.extract_tag_version.outputs.tag }}.jar + generate_release_notes: true diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml new file mode 100644 index 00000000..a3e41d1f --- /dev/null +++ b/.github/workflows/tag.yml @@ -0,0 +1,30 @@ +name: Tag + +run-name: Create Tag + +on: + pull_request: + types: + - closed + branches: + - main + +jobs: + if_merged: + if: github.event.pull_request.merged == true && startsWith( github.event.pull_request.title, 'release' ) + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + token: ${{ secrets.RELEASE_ACTIONS_TOKEN }} + - name: Extract version + run: echo "version=$(echo '${{ github.event.pull_request.title }}' | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')" >> $GITHUB_OUTPUT + id: extract_version + - name: Set git config + run: | + git config user.name sohyun-ku + git config user.email sohyun-ku@nts-corp.com + git branch release/${{ steps.extract_version.outputs.version }} + - name: Create tag + run: ./gradlew :release -Prelease.useAutomaticVersion=true -Prelease.releaseVersion=${{ steps.extract_version.outputs.version }} diff --git a/build.gradle.kts b/build.gradle.kts index 3889da3b..4740c723 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,10 +1,10 @@ plugins { idea + id("net.researchgate.release") version "3.0.2" } allprojects { group = "com.navercorp.scavenger" - version = "1.0.4" repositories { mavenCentral() @@ -20,6 +20,22 @@ allprojects { } } +release { + val releaseVersion = if (hasProperty("release.releaseVersion")) { + property("release.releaseVersion") + } else { + version + } + + pushReleaseVersionBranch.set("release/${ releaseVersion }") + tagTemplate.set("v${ releaseVersion }") + preTagCommitMessage.set("Release ") + newVersionCommitMessage.set("Update next development version after Release") + with(git) { + requireBranch.set("main") + } +} + subprojects { tasks.withType { useJUnitPlatform() diff --git a/gradle.properties b/gradle.properties index 1a4d9a4d..94f4452e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,4 @@ +version=1.0.5-SNAPSHOT kotlin.code.style=official restAssuredVersion=4.3.3 springDataJdbcPlusVersion=2.2.3