feat(desktop): integrate Datadog #37176
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "[All Platforms] - Build and Test - PR" | |
| on: | |
| merge_group: | |
| types: [checks_requested] | |
| pull_request: ~ | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref_name != 'develop' && github.ref || github.run_id }} | |
| cancel-in-progress: true | |
| permissions: | |
| id-token: write | |
| contents: read | |
| pull-requests: write | |
| actions: write | |
| jobs: | |
| pre_job: | |
| name: "Skip Check" | |
| if: ${{!github.event.pull_request.head.repo.fork}} | |
| runs-on: ubuntu-latest | |
| outputs: | |
| should_skip: ${{ steps.skip_check.outputs.should_skip == 'true' || steps.smartling_check.outputs.should_skip == 'true' }} | |
| env: | |
| IS_SMARTLING: ${{ startsWith(github.event.pull_request.head.ref, 'smartling-content-updated') == true || startsWith(github.event.pull_request.head.ref, 'smartling-translation-completed') == true}} | |
| steps: | |
| - id: skip_check | |
| uses: fkirc/skip-duplicate-actions@v5 | |
| with: | |
| concurrent_skipping: "never" | |
| skip_after_successful_duplicate: "true" | |
| do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]' | |
| - id: smartling_check | |
| if: ${{ env.IS_SMARTLING == 'true' }} | |
| run: | | |
| echo "should_skip=true" >> $GITHUB_OUTPUT | |
| gh pr close ${{ github.event.pull_request.number }} -R LedgerHQ/ledger-live | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| determine-affected: | |
| name: "Turbo Affected" | |
| needs: pre_job | |
| if: ${{!github.event.pull_request.head.repo.fork && needs.pre_job.outputs.should_skip != 'true'}} | |
| uses: LedgerHQ/ledger-live/.github/workflows/turbo-affected-reusable.yml@develop | |
| with: | |
| head_branch: ${{ github.event.pull_request.head.ref || github.event.merge_group.head_ref }} | |
| base_branch: ${{ github.event.pull_request.base.ref || github.event.merge_group.base_ref }} | |
| # LLD | |
| build-desktop: | |
| name: "Build Desktop" | |
| needs: determine-affected | |
| if: ${{contains(needs.determine-affected.outputs.paths, 'ledger-live-desktop') && !github.event.pull_request.head.repo.fork}} | |
| uses: LedgerHQ/ledger-live/.github/workflows/build-desktop-reusable.yml@develop | |
| secrets: inherit | |
| test-desktop: | |
| name: "Test Desktop" | |
| needs: determine-affected | |
| if: ${{contains(needs.determine-affected.outputs.paths, 'ledger-live-desktop') && !github.event.pull_request.head.repo.fork}} | |
| uses: LedgerHQ/ledger-live/.github/workflows/test-desktop-reusable.yml@develop | |
| secrets: inherit | |
| test-mobile: | |
| name: "Test Mobile" | |
| needs: determine-affected | |
| if: ${{contains(needs.determine-affected.outputs.paths, 'ledger-live-mobile') && !github.event.pull_request.head.repo.fork}} | |
| uses: LedgerHQ/ledger-live/.github/workflows/test-mobile-reusable.yml@develop | |
| secrets: inherit | |
| build-test-mobile: | |
| name: "Build & Test Mobile" | |
| needs: determine-affected | |
| if: ${{contains(needs.determine-affected.outputs.paths, 'ledger-live-mobile') && !github.event.pull_request.head.repo.fork}} | |
| uses: LedgerHQ/ledger-live/.github/workflows/test-mobile-mock-reusable.yml@develop | |
| secrets: inherit | |
| with: | |
| macos-specificity-runner-label: "performance-pool" | |
| skip-pod-checks: "false" | |
| # Tests | |
| test-libraries: | |
| name: "Test Libraries" | |
| needs: determine-affected | |
| if: ${{contains(needs.determine-affected.outputs.paths, 'libs') && !github.event.pull_request.head.repo.fork}} | |
| uses: LedgerHQ/ledger-live/.github/workflows/test-libs-reusable.yml@develop | |
| secrets: inherit | |
| test-design-system: | |
| name: "Test UI Libs" | |
| needs: determine-affected | |
| if: ${{contains(needs.determine-affected.outputs.paths, 'libs/ui') && !github.event.pull_request.head.repo.fork}} | |
| uses: LedgerHQ/ledger-live/.github/workflows/test-design-system-reusable.yml@develop | |
| secrets: inherit | |
| build-web-tools: | |
| name: "Build Web Tools" | |
| needs: determine-affected | |
| if: ${{contains(needs.determine-affected.outputs.paths, 'apps/web-tools') && !github.event.pull_request.head.repo.fork}} | |
| uses: LedgerHQ/ledger-live/.github/workflows/build-web-tools-reusable.yml@develop | |
| secrets: inherit | |
| test-cli: | |
| name: "Test CLI" | |
| needs: determine-affected | |
| if: ${{contains(needs.determine-affected.outputs.paths, 'apps/cli') && !github.event.pull_request.head.repo.fork}} | |
| uses: LedgerHQ/ledger-live/.github/workflows/test-cli-reusable.yml@develop | |
| secrets: inherit | |
| test-additional: | |
| name: "Test Additional" | |
| if: ${{!github.event.pull_request.head.repo.fork}} | |
| uses: LedgerHQ/ledger-live/.github/workflows/test-additional.yml@develop | |
| secrets: inherit | |
| notify-e2e-required: | |
| name: "Notify E2E Required" | |
| needs: determine-affected | |
| if: ${{ always() && needs.determine-affected.result == 'success' && github.event_name == 'pull_request' && github.event.pull_request.draft == false && !github.event.pull_request.head.repo.fork }} | |
| uses: LedgerHQ/ledger-live/.github/workflows/notify-e2e-required-reusable.yml@develop | |
| secrets: inherit | |
| with: | |
| affected_paths: ${{ needs.determine-affected.outputs.paths }} | |
| scan-sonar: | |
| name: "Sonar Cloud" | |
| needs: | |
| - test-desktop | |
| - test-mobile | |
| - test-libraries | |
| - determine-affected | |
| uses: LedgerHQ/ledger-live/.github/workflows/scan-sonar-reusable.yml@develop | |
| if: ${{ always() && !cancelled() && !github.event.pull_request.head.repo.fork && (needs.test-desktop.result == 'success' || needs.test-mobile.result == 'success' || needs.test-libraries.result == 'success' || contains(needs.determine-affected.outputs.paths, 'e2e')) }} | |
| secrets: inherit | |
| with: | |
| should_download_desktop_coverage: ${{ needs.test-desktop.outputs.coverage_generated }} | |
| should_download_mobile_coverage: ${{ needs.test-mobile.outputs.coverage_generated }} | |
| should_download_libs_coverage: ${{ needs.test-libraries.outputs.coverage_generated }} | |
| # Final Check required | |
| ok: | |
| name: "OK" | |
| needs: | |
| - build-desktop | |
| - test-desktop | |
| - test-mobile | |
| - build-test-mobile | |
| - test-libraries | |
| - test-design-system | |
| - build-web-tools | |
| - test-cli | |
| - test-additional | |
| - determine-affected | |
| runs-on: ubuntu-22.04 | |
| if: always() && !cancelled() && needs.determine-affected.result == 'success' | |
| steps: | |
| - name: Check result | |
| if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') | |
| run: exit 1 |