diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..def78c4 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,84 @@ +name: Release on manual push + +on: + workflow_dispatch: + inputs: + release_version: + description: 'Release version' + required: true + +jobs: + release: + name: "Release" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set version + run: | + sed -i "s/1.SNAPSHOT/${{ inputs.release_version }}/g" build.gradle.kts src/main/kotlin/id/walt/Values.kt + - run: | + git tag v${{ inputs.release_version }} + git push --tags + - name: Setup cache + uses: actions/cache@v2 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: Gradle wrapper validation + uses: gradle/wrapper-validation-action@v1 + - name: Running gradle build + uses: eskatos/gradle-command-action@v1.3.3 + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + with: + arguments: build publish --no-daemon + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Build and push Docker images + uses: docker/build-push-action@v4.0.0 + with: + push: true + tags: waltid/xyzkit:latest, waltid/xyzkit:${{ inputs.release_version }} + - name: Changelog + uses: ardalanamini/auto-changelog@v3 + id: changelog + with: + github-token: ${{ github.token }} + commit-types: | + breaking: Breaking Changes + feat: New Features + fix: Bug Fixes + revert: Reverts + perf: Performance Improvements + refactor: Refactors + deps: Dependencies + docs: Documentation Changes + style: Code Style Changes + build: Build System + ci: Continuous Integration + test: Tests + chore: Chores + other: Other Changes + default-commit-type: Other Changes + release-name: v${{ inputs.release_version }} + mention-authors: true + mention-new-contributors: true + include-compare: true + semver: true + - name: Create Release + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: v${{ inputs.release_version }} + body: | + ${{ steps.changelog.outputs.changelog }} + prerelease: ${{ steps.changelog.outputs.prerelease }}