name: "Draft new release" on: workflow_dispatch: inputs: version: description: "The new version in X.Y.Z format." required: true jobs: draft-new-release: name: "Draft a new release" runs-on: ubuntu-latest steps: - uses: actions/checkout@v4.1.7 with: token: ${{ secrets.BOTTY_GITHUB_TOKEN }} - name: Create release branch run: git checkout -b release/${{ github.event.inputs.version }} - name: Update changelog uses: thomaseizinger/keep-a-changelog-new-release@3.1.0 with: version: ${{ github.event.inputs.version }} changelogPath: CHANGELOG.md - name: Initialize mandatory git config run: | git config user.name "${{ secrets.BOTTY_NAME }}" git config user.email ${{ secrets.BOTTY_EMAIL }} - name: Bump version in Cargo.toml uses: thomaseizinger/set-crate-version@1.0.0 with: version: ${{ github.event.inputs.version }} manifest: swap/Cargo.toml - name: Update Cargo.lock run: cargo update --workspace - name: Commit changelog and manifest files id: make-commit env: DPRINT_VERSION: "0.39.1" RUST_TOOLCHAIN: "1.74" run: | rustup component add rustfmt --toolchain "$RUST_TOOLCHAIN-x86_64-unknown-linux-gnu" curl -fsSL https://dprint.dev/install.sh | sh -s $DPRINT_VERSION /home/runner/.dprint/bin/dprint fmt git add CHANGELOG.md Cargo.lock swap/Cargo.toml git commit --message "Prepare release ${{ github.event.inputs.version }}" echo "::set-output name=commit::$(git rev-parse HEAD)" - name: Push new branch run: git push origin release/${{ github.event.inputs.version }} --force - name: Create pull request uses: thomaseizinger/create-pull-request@1.4.0 with: GITHUB_TOKEN: ${{ secrets.BOTTY_GITHUB_TOKEN }} head: release/${{ github.event.inputs.version }} base: master title: Release version ${{ github.event.inputs.version }} reviewers: ${{ github.actor }} body: | Hi @${{ github.actor }}! This PR was created in response to a manual trigger of the release workflow here: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}. I've updated the changelog and bumped the versions in the manifest files in this commit: ${{ steps.make-commit.outputs.commit }}. Merging this PR will create a GitHub release and upload any assets that are created as part of the release build.