diff --git a/.github/workflows/pr-label.yml b/.github/workflows/pr-label.yml index a3fc40d5c..2f127e5bd 100644 --- a/.github/workflows/pr-label.yml +++ b/.github/workflows/pr-label.yml @@ -26,7 +26,7 @@ jobs: -H "Accept: application/vnd.github.v3+json" \ "https://api.github.com/repos/$GITHUB_REPOSITORY/issues/$PR_NUMBER" \ | jq -r '.labels | map(.name) | join(" ")') - + echo $EXISTING_LABELS # Remove existing labels @@ -41,6 +41,3 @@ jobs: run: | export GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} gh pr edit ${{ github.event.pull_request.number }} --add-label "closed" - - - diff --git a/.github/workflows/release-new-nightly-version.yml b/.github/workflows/release-new-nightly-version.yml new file mode 100644 index 000000000..75a7cb760 --- /dev/null +++ b/.github/workflows/release-new-nightly-version.yml @@ -0,0 +1,30 @@ +name: Release a new nightly hyperswitch control center version + +on: + schedule: + - cron: "30 14 * * 0-4" # Run workflow at 8 PM IST every Sunday-Thursday + + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +# on: +# pull_request_target: +# types: +# - closed + +env: + # Allow more retries for network requests in cargo (downloading crates) and + # rustup (installing toolchains). This should help to reduce flaky CI failures + # from transient network timeouts or other issues. + CARGO_NET_RETRY: 10 + RUSTUP_MAX_RETRIES: 10 + +jobs: + create-nightly-tag: + name: Create a nightly tag + uses: juspay/hyperswitch/.github/workflows/release-nightly-version-reusable.yml@main + secrets: + token: ${{ secrets.AUTO_RELEASE_PAT }} diff --git a/.github/workflows/release-new-version.yml b/.github/workflows/release-new-version.yml index 9a16cc921..ade4f1982 100644 --- a/.github/workflows/release-new-version.yml +++ b/.github/workflows/release-new-version.yml @@ -23,8 +23,57 @@ env: RUSTUP_MAX_RETRIES: 10 jobs: - create-nightly-tag: - name: Create a nightly tag - uses: juspay/hyperswitch/.github/workflows/release-nightly-version-reusable.yml@main - secrets: - token: ${{ secrets.AUTO_RELEASE_PAT }} + create-release: + name: Release a new version + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.AUTO_RELEASE_PAT }} + + - name: Install Rust + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable 2 weeks ago + + - name: Install cocogitto + uses: baptiste0928/cargo-install@v2.2.0 + with: + crate: cocogitto + version: 5.4.0 + + - name: Set Git Configuration + shell: bash + run: | + git config --local user.name 'github-actions' + git config --local user.email '41898282+github-actions[bot]@users.noreply.github.com' + + - name: Obtain previous and new tag information + shell: bash + # Only consider tags on current branch when setting PREVIOUS_TAG + run: | + PREVIOUS_TAG="$(git tag --sort='version:refname' --merged | tail --lines 1)" + if [[ "$(cog bump --auto --dry-run)" == *"No conventional commits for your repository that required a bump"* ]]; then + NEW_TAG="$(cog bump --patch --dry-run)" + else + NEW_TAG="$(cog bump --auto --dry-run)" + fi + echo "NEW_TAG=${NEW_TAG}" >> $GITHUB_ENV + echo "PREVIOUS_TAG=${PREVIOUS_TAG}" >> $GITHUB_ENV + + - name: Update changelog and create tag + shell: bash + if: ${{ env.NEW_TAG != env.PREVIOUS_TAG }} + # Remove prefix 'v' from 'NEW_TAG' as cog bump --version expects only the version number + run: | + cog bump --version ${NEW_TAG#v} + + - name: Push created commit and tag + shell: bash + if: ${{ env.NEW_TAG != env.PREVIOUS_TAG }} + run: | + git push + git push --tags