name: Open a release PR on: workflow_dispatch: inputs: version: description: Version to release required: true type: string jobs: make-release-pr: runs-on: ubuntu-latest steps: - name: Install cargo-release uses: taiki-e/install-action@v1 with: tool: cargo-release - uses: actions/checkout@v2 with: ref: main - name: Extract info run: | set -euxo pipefail branch_name="release-${{ inputs.version }}" echo "branch_name=${branch_name}" >> $GITHUB_ENV - name: Make release branch run: git switch -c "${{ env.branch_name }}" - name: Do release run: | set -euxo pipefail git config user.name github-actions git config user.email github-actions@github.com cargo release \ --execute \ --no-push \ --no-tag \ --no-publish \ --no-confirm \ --verbose \ --config release.toml \ --allow-branch "${{ env.branch_name }}" \ --dependent-version upgrade \ "${{ inputs.version }}" - name: Push new branch run: | set -euxo pipefail git push origin "${{ env.branch_name }}" - name: Create PR run: | set -euxo pipefail nl=$'\n' br=$'\n\n' fence=$'```\n' ecnef=$'\n```' title='release: v${{ inputs.version }}' body=$(sed 's/%version%/${{ inputs.version }}/g' .github/scripts/release-pr.txt) gh pr create --title "$title" --body "$body" --base main --head "${{ env.branch_name }}" --label "release" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}