From 833f8c1bd2d8978102d9babde8d77c9f43e2322e Mon Sep 17 00:00:00 2001 From: Tomas Rivera Date: Mon, 25 May 2026 16:44:14 +0200 Subject: [PATCH] CI: add release workflow --- .github/workflows/release.yml | 59 +++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..66535c1 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,59 @@ +name: Release PR + +on: + workflow_dispatch: + inputs: + version: + required: true + +permissions: + contents: write + pull-requests: write + +jobs: + release_pr: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install GitHub CLI + run: sudo apt-get update && sudo apt-get install -y gh + + + - name: Configure git + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + - uses: DeterminateSystems/nix-installer-action@v12 + + - name: Create release branch + run: | + git checkout -B release/v${{ inputs.version }} + + - name: Set version in flake.nix + run: | + sed -i "s/version = \".*\";/version = \"${{ inputs.version }}\";/" flake.nix + + - name: Update flake inputs + run: nix flake update + + - name: Commit changes + run: | + git add flake.nix flake.lock + git commit -m "chore(release): ${{ inputs.version }}" + + - name: Push branch + run: | + git push origin release/v${{ inputs.version }} + + - name: Create Pull Request + run: | + gh pr create \ + --base main \ + --head release/v${{ inputs.version }} \ + --title "[Automatic] Release v${{ inputs.version }}" \ + --body "Automated release PR.\nAfter the test's succesfull run, create manually a release with a new tag matching `${{ inputs.version }}`" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}