From b27b0550b535c32d17cb4a91c8ef3493d5bd1a0c Mon Sep 17 00:00:00 2001 From: Tomas Psota Date: Tue, 24 Mar 2026 15:44:03 +0100 Subject: [PATCH 1/2] ci: Add automated publishing to pub.dev --- .github/workflows/publish-release.yml | 80 +++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .github/workflows/publish-release.yml diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml new file mode 100644 index 0000000..03fa3f3 --- /dev/null +++ b/.github/workflows/publish-release.yml @@ -0,0 +1,80 @@ +name: Publish release + +on: + pull_request: + types: [closed] + branches: + - master + push: + tags: + - "v*" + +permissions: + contents: write + id-token: write + +jobs: + release_gh: + name: GitHub Release + if: github.event_name == 'push' || (github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'release')) + runs-on: ubuntu-latest + steps: + - name: 📚 Git Checkout + uses: actions/checkout@v6 + + - name: Get latest version + run: | + echo "PACKAGE_VERSION=$(grep '^version: ' pubspec.yaml | cut -d ' ' -f 2 | tr -d '\r')" >> $GITHUB_ENV + + - name: Download dSYMs + if: github.event_name == 'pull_request' + env: + PR_BODY: ${{ github.event.pull_request.body }} + run: | + url=$(echo "$PR_BODY" | grep -oE 'https://[^ )]*dSYMs\.zip' | head -n 1) + if [ -n "$url" ]; then + echo "Found dSYMs URL: $url" + curl -L -o dSYMs.zip "$url" + else + echo "No dSYMs.zip URL found in PR body." + fi + + - name: Generate Changelog + run: awk '/^## \[/{if (f) exit; f=1; next} f' CHANGELOG.md > RELEASE_NOTES.md + + - name: GitHub Release + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + FILES="" + if [ -f dSYMs.zip ]; then + FILES="dSYMs.zip" + fi + gh release create v${{ env.PACKAGE_VERSION }} \ + --title "freeRASP ${{ env.PACKAGE_VERSION }}" \ + --notes-file RELEASE_NOTES.md \ + $FILES + + publish_pub_dev: + name: Publish release to pub.dev + needs: release_gh + runs-on: ubuntu-latest + steps: + - name: 📚 Git Checkout + uses: actions/checkout@v6 + + - name: 🐦 Setup Flutter + uses: subosito/flutter-action@v2 + with: + channel: stable + flutter-version: 3.24.0 + cache: true + + - name: 🎯 Setup Pub Credentials + uses: dart-lang/setup-dart@v1 + + - name: 📦 Install Dependencies + run: flutter pub get + + - name: 🚀 Publish to pub.dev + run: flutter pub publish -f From 05da7745cde9c36bd69a8f4a9403d0cbc42b3944 Mon Sep 17 00:00:00 2001 From: Tomas Psota Date: Tue, 24 Mar 2026 15:57:18 +0100 Subject: [PATCH 2/2] bump actions --- .github/pull_request_template.md | 3 +++ .github/workflows/flutter-ci.yml | 26 +++++++++++++------------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 32069ad..99b29c3 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -12,6 +12,9 @@ - [ ] 📋 Changelog updated - [ ] ➡️ `pubspec.yaml` version updated +# dSYMs: +- [ ] attached + ## Post-release checklist - [ ] 🐦 Release to pub.dev diff --git a/.github/workflows/flutter-ci.yml b/.github/workflows/flutter-ci.yml index 6ceef46..4708630 100644 --- a/.github/workflows/flutter-ci.yml +++ b/.github/workflows/flutter-ci.yml @@ -5,14 +5,14 @@ on: branches: - master paths-ignore: - - '**/*.md' - - '.github/**' + - "**/*.md" + - ".github/**" pull_request: branches: - master paths-ignore: - - '**/*.md' - - '.github/**' + - "**/*.md" + - ".github/**" workflow_dispatch: @@ -25,10 +25,10 @@ jobs: runs-on: ubuntu-latest steps: - name: 📚 Git Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: 🐦 Setup Flutter - uses: subosito/flutter-action@v2.16.0 + uses: subosito/flutter-action@v2 with: channel: stable flutter-version: ${{ env.FLUTTER_VERSION }} @@ -53,10 +53,10 @@ jobs: needs: lint steps: - name: 📚 Git Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: 🐦 Setup Flutter - uses: subosito/flutter-action@v2.16.0 + uses: subosito/flutter-action@v2 with: channel: stable flutter-version: ${{ env.FLUTTER_VERSION }} @@ -68,13 +68,13 @@ jobs: build-android: runs-on: ubuntu-latest needs: test - + steps: - name: 📚 Git Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: 🐦 Setup Flutter - uses: subosito/flutter-action@v2.16.0 + uses: subosito/flutter-action@v2 with: channel: stable flutter-version: ${{ env.FLUTTER_VERSION }} @@ -90,10 +90,10 @@ jobs: steps: - name: 📚 Git Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: 🐦 Setup Flutter - uses: subosito/flutter-action@v2.16.0 + uses: subosito/flutter-action@v2 with: channel: stable flutter-version: ${{ env.FLUTTER_VERSION }}