From 89c8a2c2c9d8bcb3ddee25219ba14062bb2709c0 Mon Sep 17 00:00:00 2001 From: Pedro Nauck Date: Fri, 31 May 2024 23:37:15 -0300 Subject: [PATCH] ci: refac actions --- .github/workflows/release.yaml | 66 ++++++++++++++++++++++++------ .github/workflows/update_deps.yaml | 4 +- 2 files changed, 56 insertions(+), 14 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 854c765..bed4b99 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -9,9 +9,10 @@ concurrency: cancel-in-progress: true jobs: - release: - if: "!startsWith(github.event.head_commit.message, 'ci(bump):')" + setup: runs-on: ubuntu-latest + outputs: + prerelease: ${{ steps.set-prerelease.outputs.prerelease }} steps: - name: Checkout code @@ -23,7 +24,7 @@ jobs: git config --global user.email "${{ github.actor }}@users.noreply.github.com" - name: Check for pre-release configuration - id: prerelease + id: set-prerelease run: | if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then echo "prerelease=nightly" >> $GITHUB_OUTPUT @@ -32,36 +33,59 @@ jobs: else echo "prerelease=false" >> $GITHUB_OUTPUT + changelog: + runs-on: ubuntu-latest + needs: setup + outputs: + version: ${{ steps.save-outputs.outputs.version }} + changelog: ${{ steps.save-outputs.outputs.changelog }} + commit_message: ${{ steps.save-outputs.outputs.commit_message }} + branch: ${{ steps.save-outputs.outputs.branch }} + + steps: + - name: Checkout code + uses: actions/checkout@v4 + - id: cz name: Create bump and changelog uses: commitizen-tools/commitizen-action@master with: github_token: ${{ secrets.GITHUB_TOKEN }} changelog_increment_filename: body.md - prerelease: ${{ steps.prerelease.outputs.prerelease }} + prerelease: ${{ needs.setup.outputs.prerelease }} - name: Save outputs - id: vars + id: save-outputs run: | version=${{ steps.cz.outputs.version }} changelog=$(cat body.md) commit_message="ci(bump): release ${version}" - branch="release-${{ steps.vars.outputs.version }}" + branch="release-${{ steps.cz.outputs.version }}" echo "version=${version}" >> $GITHUB_OUTPUT echo "changelog=${changelog}" >> $GITHUB_OUTPUT echo "commit_message=${commit_message}" >> $GITHUB_OUTPUT echo "branch=${branch}" >> $GITHUB_OUTPUT + create_pr: + runs-on: ubuntu-latest + needs: changelog + + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Create Pull Request id: cpr uses: peter-evans/create-pull-request@v3 with: - commit-message: ${{ steps.vars.outputs.commit_message }} - title: Release ${{ steps.vars.outputs.version }} + commit-message: ${{ needs.changelog.outputs.commit_message }} + title: Release ${{ needs.changelog.outputs.version }} body: | - ${{ steps.vars.outputs.changelog }} - branch: release-${{ steps.vars.outputs.version }} + ${{ needs.changelog.outputs.changelog }} + branch: ${{ needs.changelog.outputs.branch }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Check outputs if: ${{ steps.cpr.outputs.pull-request-number }} @@ -69,11 +93,29 @@ jobs: echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" + release: + runs-on: ubuntu-latest + needs: changelog + if: github.ref == 'refs/heads/release' + + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Release - if: ${{ github.ref == 'refs/heads/release' }} uses: softprops/action-gh-release@v1 with: body_path: body.md - tag_name: ${{ env.REVISION }} + tag_name: ${{ needs.changelog.outputs.version }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + notify: + runs-on: ubuntu-latest + if: failure() + + steps: + - name: Error Notification + run: |- + echo "An error occurred during the release process" + # Optionally, send a notification to Slack or email diff --git a/.github/workflows/update_deps.yaml b/.github/workflows/update_deps.yaml index 7664e74..d1f2023 100644 --- a/.github/workflows/update_deps.yaml +++ b/.github/workflows/update_deps.yaml @@ -32,7 +32,7 @@ env: jobs: update: name: Update Dependencies - runs-on: buildjet-4vcpu-ubuntu-2204 + runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4 @@ -62,7 +62,7 @@ jobs: pr: name: Create or Update Pull Request needs: update - runs-on: buildjet-4vcpu-ubuntu-2204 + runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4