From ec9718d64b225b78e469c707331990e55ea99b54 Mon Sep 17 00:00:00 2001 From: Vadim <44135514+vodemn@users.noreply.github.com> Date: Mon, 27 Jan 2025 19:55:29 +0100 Subject: [PATCH] updated firebase stub --- .github/workflows/analyze_and_test.yml | 74 -------------------------- .github/workflows/pr_check.yml | 66 ++++++++++++++++++----- 2 files changed, 53 insertions(+), 87 deletions(-) delete mode 100644 .github/workflows/analyze_and_test.yml diff --git a/.github/workflows/analyze_and_test.yml b/.github/workflows/analyze_and_test.yml deleted file mode 100644 index cd738d8..0000000 --- a/.github/workflows/analyze_and_test.yml +++ /dev/null @@ -1,74 +0,0 @@ -# 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 84e8f92..f80b9e0 100644 --- a/.github/workflows/pr_check.yml +++ b/.github/workflows/pr_check.yml @@ -12,26 +12,66 @@ on: branches: ["main"] jobs: - pr-id: - name: Get PR id + analyze-and-test: + name: Analyze & test runs-on: macos-14 timeout-minutes: 10 - outputs: - pull-request-id: ${{ steps.pull-request-id-step.outputs.id }} + env: + EMPTY_CONSTANTS: Y29uc3QgU3RyaW5nIGlhcFNlcnZlclVybCA9ICcnOwpjb25zdCBTdHJpbmcgaXNzdWVzUmVwb3J0VXJsID0gJyc7CmNvbnN0IFN0cmluZyBzb3VyY2VDb2RlVXJsID0gJyc7CmNvbnN0IFN0cmluZyBjb250YWN0RW1haWwgPSAnJzsK + EMPTY_FIREBASE_OPTIONS: Ly8gaWdub3JlX2Zvcl9maWxlOiB0eXBlPWxpbnQKaW1wb3J0ICdwYWNrYWdlOmZpcmViYXNlX2NvcmUvZmlyZWJhc2VfY29yZS5kYXJ0JyBzaG93IEZpcmViYXNlT3B0aW9uczsKY2xhc3MgRGVmYXVsdEZpcmViYXNlT3B0aW9ucyB7c3RhdGljIGdldCBjdXJyZW50UGxhdGZvcm09PkZpcmViYXNlT3B0aW9ucyhhcGlLZXk6ICcnLCBhcHBJZDogJycsIG1lc3NhZ2luZ1NlbmRlcklkOiAnJywgcHJvamVjdElkOiAnJyk7fQ== steps: - uses: 8BitJonny/gh-get-current-pr@2.2.0 id: PR - - id: pull-request-id-step - run: echo "id=${{ steps.PR.outputs.number }}" >> "$GITHUB_OUTPUT" + - uses: actions/checkout@v3 + with: + submodules: recursive - analyze-and-test: - name: Analyze & test - needs: [pr-id] - uses: ./.github/workflows/analyze_and_test.yml - secrets: inherit - with: - is-fork: ${{ needs.pr-id.outputs.pull-request-id != 'null' && github.event.pull_request.head.repo.full_name != github.repository }} + - name: Connect private iap package + uses: webfactory/ssh-agent@v0.8.0 + id: fetch-iap + if: steps.PR.outputs.number == 'null' || github.event.pull_request.head.repo.full_name == github.repository + 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: ${{ steps.fetch-iap.conclusion == 'success' && secrets.CONSTANTS || env.EMPTY_CONSTANTS }} + FIREBASE_OPTIONS: ${{ steps.fetch-iap.conclusion == 'success' && 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 platform-changes: name: Checks for platform changes