diff --git a/.github/config/configuration.json b/.github/config/configuration.json new file mode 100644 index 000000000000..09df5f7dae98 --- /dev/null +++ b/.github/config/configuration.json @@ -0,0 +1,64 @@ +{ + "categories": [ + { + "title": "## 🚀 Features", + "labels": [ + "feat" + ] + }, + { + "title": "## 🐛 Fixes", + "labels": [ + "fix" + ] + }, + { + "title": "## 🧰 Maintenance", + "labels": [ + "chore" + ] + }, + { + "title": "## 🧪 Tests", + "labels": [ + "test" + ] + }, + { + "title": "## 🖍️ Documentation", + "labels": [ + "doc", + "docs" + ] + }, + { + "title": "## 📦 Dependencies", + "labels": [ + "deps", + "dependencies", + "chore(deps)" + ] + }, + { + "title": "## 💬 Other", + "labels": [ + "other", + "misc" + ] + } + ], + "sort": "ASC", + "template": "${{CHANGELOG}}\n\n
\nUncategorized\n\n${{UNCATEGORIZED}}\n
", + "pr_template": "${{TITLE}}", + "empty_template": "- no changes", + "label_extractor": [ + { + "pattern": "(.+): (.+)", + "target": "$1" + } + ], + "exclude_merge_branches": [ + "merge pull request", + "Merge pull request" + ] +} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000000..1ce093392b7d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,93 @@ +name: shisui image + +on: + release: + types: [created] + +defaults: + run: + shell: bash + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: write + +env: + releaseBuild: ${{ github.event_name == 'push' && contains(github.ref, 'refs/tags/') }} + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + + push_image_to_github: + name: Push Docker image to Github + runs-on: ubuntu-latest + permissions: write-all + steps: + - name: Check out the repo + uses: actions/checkout@v4 + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ github.repository }} + tags: | + type=semver,pattern={{raw}} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile.portal + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + + release: + name: 🚰 Release new version. + needs: push_image_to_github + runs-on: ubuntu-latest + + steps: + - name: 🛎️Check out the source code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: recursive + + - name: ⚙️Build Changelog + id: github_release + uses: mikepenz/release-changelog-builder-action@v4 + with: + configuration: ".github/config/configuration.json" + commitMode: true + ignorePreReleases: ${{ !contains(github.ref, '-') }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: ⏬Download all the build artifacts + uses: actions/download-artifact@v3 + with: + path: release-artifacts + + - name: ✨Github Release + uses: softprops/action-gh-release@v1 + with: + body: ${{ steps.github_release.outputs.changelog }} + files: | + ${{ github.workspace }}/release-artifacts/** + generate_release_notes: true + fail_on_unmatched_files: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file