From a1776d7658bbec45647db40b3dd2f41fe3c3d6c6 Mon Sep 17 00:00:00 2001 From: Paul Woitaschek Date: Thu, 2 Oct 2025 09:17:19 +0200 Subject: [PATCH] Allow to trigger releases from a workflow (#3150) --- .github/workflows/trigger_release.yml | 32 ++++++++++++++++++++ .gitignore | 2 ++ release.main.kts => scripts/release.main.kts | 15 ++++++--- 3 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/trigger_release.yml rename release.main.kts => scripts/release.main.kts (96%) diff --git a/.github/workflows/trigger_release.yml b/.github/workflows/trigger_release.yml new file mode 100644 index 000000000..54c4973fa --- /dev/null +++ b/.github/workflows/trigger_release.yml @@ -0,0 +1,32 @@ +name: Trigger Release + +on: + workflow_dispatch: + +permissions: + contents: write + +jobs: + release: + runs-on: ubuntu-latest + + steps: + - name: Checkout (with tags) + uses: actions/checkout@v4 + with: + # We need the tags to determine the next release + fetch-depth: 0 + fetch-tags: true + # We need the credentials to push the tag + persist-credentials: true + + - name: Configure git author + run: | + git config user.name "${GITHUB_ACTOR}" + git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" + + - name: Run release script (non-interactive) + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + ./scripts/release.main.kts diff --git a/.gitignore b/.gitignore index 4a39263e5..fd1a5114c 100755 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ releases /.idea/deviceManager.xml /fastlane/README.md /fastlane/report.xml +/.idea/copilot.data.migration.ask.xml +/.idea/copilot.data.migration.ask2agent.xml diff --git a/release.main.kts b/scripts/release.main.kts similarity index 96% rename from release.main.kts rename to scripts/release.main.kts index a7735f7bc..b71c6455e 100755 --- a/release.main.kts +++ b/scripts/release.main.kts @@ -120,16 +120,21 @@ class Release : CliktCommand() { } echo("Tagging git with $newVersionName-$newVersionCode") gitTag(newVersion) - val shouldPush = YesNoPrompt( - prompt = "Push tags to remote", - terminal = terminal, - default = true, - ).ask() ?: false + val shouldPush = confirmPush() if (shouldPush) { gitPush() } } + + private fun confirmPush(): Boolean { + if (System.getenv("CI") == "true") return true + return YesNoPrompt( + prompt = "Push tags to remote", + terminal = terminal, + default = true, + ).ask() ?: false + } } Release().main(args)