feat: xflow integration #3779
Workflow file for this run
This file contains 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: Check PR | |
on: | |
pull_request: | |
branches: | |
- master | |
concurrency: | |
group: ${{ github.head_ref }} | |
cancel-in-progress: true | |
env: | |
FLUTTER_VERSION: "3.24.3" | |
DART_VERSION: "3.4.3" | |
DCM_VERSION: "1.17.0" | |
jobs: | |
formatting: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dart-lang/setup-dart@v1.6.5 | |
with: | |
sdk: ${{ env.DART_VERSION }} | |
- name: Verify formatting | |
run: dart format --output=none --set-exit-if-changed . | |
dart_libs: | |
needs: [formatting] | |
runs-on: ubuntu-latest | |
env: | |
SCOPE: --no-flutter --ignore="solana" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dart-lang/setup-dart@v1.6.5 | |
with: | |
sdk: ${{ env.DART_VERSION }} | |
- name: Install DCM | |
uses: CQLabs/setup-dcm@v1 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
version: ${{ env.DCM_VERSION }} | |
- name: Activate utils | |
run: make activate_utils | |
- name: Install dependencies | |
run: melos bs ${{ env.SCOPE }} | |
- name: Analyze project source | |
run: melos exec -c 1 ${{ env.SCOPE }} -- make dart_analyze | |
- name: Run tests | |
run: melos exec -c 1 ${{ env.SCOPE }} --dir-exists="test" -- make dart_test | |
solana: | |
needs: [formatting] | |
strategy: | |
fail-fast: false | |
matrix: | |
solanaVersion: ["stable", "beta"] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
packages: read | |
env: | |
DEVNET_RPC_URL: "http://localhost:8899" | |
DEVNET_WEBSOCKET_URL: "ws://localhost:8900" | |
SCOPE: --scope="solana" | |
METAPLEX_ID: "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s" | |
METAPLEX_SO: "packages/solana/test/bpf-programs/metaplex.so" | |
steps: | |
- uses: actions/checkout@v4 | |
- run: echo "$HOME/.pub-cache/bin" >> $GITHUB_PATH | |
- uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: ${{ env.FLUTTER_VERSION }} | |
channel: "stable" | |
- name: Install DCM | |
uses: CQLabs/setup-dcm@v1 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
version: ${{ env.DCM_VERSION }} | |
- name: Activate utils | |
run: make activate_utils | |
- name: Start Solana Local Validator | |
uses: ./.github/solana_local_validator | |
with: | |
solana-version: ${{ matrix.solanaVersion }} | |
cluster: mainnet | |
args: --bpf-program ${{ env.METAPLEX_ID }} ${{ env.METAPLEX_SO }} | |
- name: Install dependencies | |
run: melos exec -c 1 ${{ env.SCOPE }} -- make dart_get | |
- name: Analyze | |
run: melos exec -c 1 ${{ env.SCOPE }} -- make dart_analyze | |
- name: Test | |
run: melos exec -c 1 ${{ env.SCOPE }} -- dart run test --coverage=coverage | |
- name: Coverage | |
run: melos exec -c 1 ${{ env.SCOPE }} -- make dart_coverage | |
- uses: codecov/codecov-action@v4 | |
with: | |
flags: solana-${{ matrix.solanaVersion }} | |
solana_mobile: | |
needs: [formatting] | |
runs-on: ubuntu-latest | |
env: | |
SCOPE: --scope="solana_mobile_*" --scope="solana_seed_vault" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: ${{ env.FLUTTER_VERSION }} | |
- name: Install DCM | |
uses: CQLabs/setup-dcm@v1 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
version: ${{ env.DCM_VERSION }} | |
- name: Activate utils | |
run: make activate_utils | |
- name: Install dependencies | |
run: melos exec -c 1 ${{ env.SCOPE }} -- make flutter_get | |
- name: Analyze | |
run: melos exec -c 1 ${{ env.SCOPE }} -- make flutter_analyze | |
- name: Test | |
run: melos exec -c 1 ${{ env.SCOPE }} --dir-exists="test" -- make flutter_test | |
espressocash_app: | |
needs: [formatting] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
packages: read | |
env: | |
SOLANA_RPC_URL: "http://localhost:8899" | |
SOLANA_WEBSOCKET_URL: "ws://localhost:8900" | |
SCOPE: --scope="espressocash_app" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: ${{ env.FLUTTER_VERSION }} | |
channel: "stable" | |
- name: Install DCM | |
uses: CQLabs/setup-dcm@v1 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
version: ${{ env.DCM_VERSION }} | |
- name: Activate utils | |
run: make activate_utils | |
- name: Start Solana Local Validator | |
uses: ./.github/solana_local_validator | |
with: | |
solana-version: stable | |
cluster: mainnet | |
- name: Install dependencies | |
run: melos bs ${{ env.SCOPE }} | |
- name: Generate code | |
run: | | |
melos exec -c 1 ${{ env.SCOPE }} --depends-on="flutter_localizations" -- flutter gen-l10n | |
melos exec -c 1 ${{ env.SCOPE }} --depends-on="build_runner" -- make flutter_build | |
- name: Generate test schemas | |
run: melos exec -c 1 ${{ env.SCOPE }} --depends-on="drift_dev" -- make flutter_generate_test_schemas | |
- name: Analyze | |
run: | | |
pip3 install networkx graphviz pydot pydotplus | |
melos exec -c 1 ${{ env.SCOPE }} -- make flutter_analyze | |
melos exec -c 1 ${{ env.SCOPE }} -- make deps_graph_all | |
melos exec -c 1 ${{ env.SCOPE }} -- make deps_graph_features | |
- name: Test | |
run: melos exec -c 1 ${{ env.SCOPE }} --dir-exists="test" -- make flutter_test | |
- name: Store failure artifacts | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: golden-test-failure | |
path: "**/test/golden/**/failures/" | |
espressocash_landing: | |
needs: [formatting] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
packages: read | |
env: | |
SCOPE: --scope="espressocash_landing" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: ${{ env.FLUTTER_VERSION }} | |
channel: "stable" | |
- name: Install DCM | |
uses: CQLabs/setup-dcm@v1 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
version: ${{ env.DCM_VERSION }} | |
- name: Activate utils | |
run: make activate_utils | |
- name: Install dependencies | |
run: melos bs ${{ env.SCOPE }} | |
- name: Generate code | |
run: | | |
melos exec -c 1 ${{ env.SCOPE }} --depends-on="flutter_localizations" -- flutter gen-l10n | |
melos exec -c 1 ${{ env.SCOPE }} --depends-on="build_runner" -- make flutter_build | |
- name: Generate test schemas | |
run: melos exec -c 1 ${{ env.SCOPE }} --depends-on="drift_dev" -- make flutter_generate_test_schemas | |
- name: Analyze | |
run: | | |
melos exec -c 1 ${{ env.SCOPE }} -- make flutter_analyze | |
melos exec -c 1 ${{ env.SCOPE }} -- make deps_graph_all | |
- name: Test | |
run: melos exec -c 1 ${{ env.SCOPE }} --dir-exists="test" -- make flutter_test | |
- name: Store failure artifacts | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: golden-test-failure | |
path: "**/test/golden/**/failures/" |