From e2c94cd6acb064f9a0cb517d8182065b4fe2f6be Mon Sep 17 00:00:00 2001 From: Vadim <44135514+vodemn@users.noreply.github.com> Date: Mon, 27 Jan 2025 19:40:38 +0100 Subject: [PATCH] split analyze workflow for stub --- .github/workflows/analyze_and_test.yml | 74 ++++++++++++++++++++++++++ .github/workflows/pr_check.yml | 9 ++-- 2 files changed, 78 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/analyze_and_test.yml diff --git a/.github/workflows/analyze_and_test.yml b/.github/workflows/analyze_and_test.yml new file mode 100644 index 0000000..cd738d8 --- /dev/null +++ b/.github/workflows/analyze_and_test.yml @@ -0,0 +1,74 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: PR check + +on: + workflow_call: + inputs: + is-fork: + type: boolean + description: Is the PR is opened from fork? + default: false + +env: + EMPTY_CONSTANTS: Y29uc3QgU3RyaW5nIGlhcFNlcnZlclVybCA9ICcnOwpjb25zdCBTdHJpbmcgaXNzdWVzUmVwb3J0VXJsID0gJyc7CmNvbnN0IFN0cmluZyBzb3VyY2VDb2RlVXJsID0gJyc7CmNvbnN0IFN0cmluZyBjb250YWN0RW1haWwgPSAnJzsK + EMPTY_FIREBASE_OPTIONS: Ly8gaWdub3JlX2Zvcl9maWxlOiB0eXBlPWxpbnQKaW1wb3J0ICdwYWNrYWdlOmZpcmViYXNlX2NvcmUvZmlyZWJhc2VfY29yZS5kYXJ0JyBzaG93IEZpcmViYXNlT3B0aW9uczsKY2xhc3MgRGVmYXVsdEZpcmViYXNlT3B0aW9ucyB7c3RhdGljIGdldCBjdXJyZW50UGxhdGZvcm0gPT4gRmlyZWJhc2VPcHRpb25zKGFwaUtleTogJycsIGFwcElkOiAnJywgbWVzc2FnaW5nU2VuZGVySWQ6ICcnLCBwcm9qZWN0SWQ6ICcnKTt9Cg== + +jobs: + analyze-and-test: + name: Analyze & test + runs-on: macos-14 + timeout-minutes: 10 + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Connect private iap package + uses: webfactory/ssh-agent@v0.8.0 + id: fetch-iap + if: ${{ inputs.is-fork != 'true' }} + with: + ssh-private-key: ${{ secrets.M3_LIGHTMETER_IAP_KEY }} + + - name: Override iap package with stub + id: override-iap + if: steps.fetch-iap.conclusion != 'success' + run: bash ./.github/scripts/stub_iap.sh + + - name: Restore secrets + env: + CONSTANTS: ${{ inputs.is-fork && secrets.CONSTANTS || env.EMPTY_CONSTANTS }} + FIREBASE_OPTIONS: ${{ inputs.is-fork && secrets.FIREBASE_OPTIONS || env.EMPTY_FIREBASE_OPTIONS }} + run: | + bash .github/scripts/restore_from_base64.sh "${{ env.CONSTANTS }}" "lib/constants.dart" + bash .github/scripts/restore_from_base64.sh "${{ env.FIREBASE_OPTIONS }}" "lib/firebase_options.dart" + + - uses: subosito/flutter-action@v2 + with: + channel: "stable" + flutter-version: "3.27.1" + + - name: Prepare flutter project + run: | + flutter --version + flutter pub get + flutter pub run intl_utils:generate + + - name: Analyze project source + run: flutter analyze lib --fatal-infos + + - name: Run tests + run: | + defaults -currentHost write -g AppleFontSmoothing -int 0 + flutter test --dart-define cameraStubImage=assets/camera_stub_image.jpg + + - name: Analyze project source with stub + if: steps.override-iap.conclusion != 'success' + run: | + bash ./.github/scripts/stub_iap.sh + flutter pub get + flutter analyze lib --fatal-infos diff --git a/.github/workflows/pr_check.yml b/.github/workflows/pr_check.yml index 601152c..a0e69a4 100644 --- a/.github/workflows/pr_check.yml +++ b/.github/workflows/pr_check.yml @@ -12,8 +12,8 @@ on: branches: ["main"] jobs: - analyze-and-test: - name: Analyze & test + pr-id: + name: Get PR id runs-on: macos-14 timeout-minutes: 10 env: @@ -23,9 +23,8 @@ jobs: - uses: 8BitJonny/gh-get-current-pr@2.2.0 id: PR - - uses: actions/checkout@v3 - with: - submodules: recursive + - id: pull-request-id-step + run: echo "id=${{ steps.PR.outputs.number }}" >> "$GITHUB_OUTPUT" - name: Connect private iap package uses: webfactory/ssh-agent@v0.8.0