|
|
@@ -0,0 +1,78 @@
|
|
|
+name: Create Release
|
|
|
+
|
|
|
+on:
|
|
|
+ workflow_dispatch:
|
|
|
+ inputs:
|
|
|
+ version:
|
|
|
+ description: 'version to release, e.g. v1.5.13'
|
|
|
+ required: true
|
|
|
+ default: 'v0.1.0'
|
|
|
+
|
|
|
+env:
|
|
|
+ GHCR_USERNAME: ${{ secrets.GHCR_USERNAME }}
|
|
|
+
|
|
|
+jobs:
|
|
|
+ release:
|
|
|
+ name: Create Release
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ steps:
|
|
|
+ - name: Checkout
|
|
|
+ uses: actions/checkout@v2
|
|
|
+ with:
|
|
|
+ fetch-depth: 0
|
|
|
+
|
|
|
+ - name: Create Release
|
|
|
+ uses: softprops/action-gh-release@v1
|
|
|
+ with:
|
|
|
+ tag_name: ${{ github.event.inputs.version }}
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
|
|
+
|
|
|
+ - name: Build Changelog
|
|
|
+ id: build_changelog
|
|
|
+ uses: mikepenz/release-changelog-builder-action@v1.8.0
|
|
|
+ with:
|
|
|
+ configuration: "changelog.json"
|
|
|
+ toTag: ${{ github.event.inputs.version }}
|
|
|
+ commitMode: true
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+
|
|
|
+ - name: create changelog file
|
|
|
+ env:
|
|
|
+ VERSION: ${{ github.event.inputs.version }}
|
|
|
+ CHANGELOG: ${{ steps.build_changelog.outputs.changelog }}
|
|
|
+ run: |
|
|
|
+ echo "Image: \`ghcr.io/${GITHUB_REPOSITORY}:${VERSION}\`" >> .changelog
|
|
|
+ echo "${CHANGELOG}" >> .changelog
|
|
|
+
|
|
|
+ - name: Update Release
|
|
|
+ uses: softprops/action-gh-release@v1
|
|
|
+ with:
|
|
|
+ tag_name: ${{ github.event.inputs.version }}
|
|
|
+ body_path: .changelog
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
|
|
+
|
|
|
+ promote:
|
|
|
+ name: Promote Container Image
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ steps:
|
|
|
+ - name: Checkout
|
|
|
+ uses: actions/checkout@v2
|
|
|
+ with:
|
|
|
+ fetch-depth: 0
|
|
|
+
|
|
|
+ - name: Login to Docker
|
|
|
+ uses: docker/login-action@v1
|
|
|
+ if: env.GHCR_USERNAME != ''
|
|
|
+ with:
|
|
|
+ registry: ghcr.io
|
|
|
+ username: ${{ secrets.GHCR_USERNAME }}
|
|
|
+ password: ${{ secrets.GHCR_TOKEN }}
|
|
|
+
|
|
|
+ - name: Promote Container Image
|
|
|
+ if: env.GHCR_USERNAME != ''
|
|
|
+ run: make docker.promote
|
|
|
+ env:
|
|
|
+ RELEASE_TAG: ${{ github.event.inputs.version }}
|