diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..fdd131b4 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,79 @@ +## +# The MIT License (MIT) +# +# Copyright (c) 2015-2023 Mickael Jeanroy +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +## + + +name: Release + +on: + workflow_dispatch: + inputs: + releaseVersion: + description: "Release version" + required: true + developmentVersion: + description: "Snapshot version" + required: true + dry_run: + description: Run dry-run release + required: true + type: choice + default: 'true' + options: + - 'true' + - 'false' + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4.1.4 + - name: Set up JDK + uses: actions/setup-java@v4.2.1 + with: + java-version: 19 + distribution: 'temurin' + cache: 'maven' + - name: Configure Git User + run: | + git config user.email "mickael.jeanroy@gmail.com" + git config user.name "Mickael Jeanroy" + - name: Import GPG Key + uses: crazy-max/ghaction-import-gpg@v6.1.0 + with: + gpg_private_key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} + passphrase: ${{ secrets.MAVEN_GPG_PASSPHRASE }} + - name: Release + run: | + ./mvnw -B -U \ + release:prepare \ + release:perform \ + -DdryRun=${{ inputs.dry_run }} \ + -Dgpg.passphrase=${{ secrets.MAVEN_GPG_PASSPHRASE }} \ + -DreleaseVersion=${{ github.event.inputs.releaseVersion }} \ + -DdevelopmentVersion=${{ github.event.inputs.developmentVersion }} \ + env: + MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} \ No newline at end of file