Skip to content

feat: xflow integration #3779

feat: xflow integration

feat: xflow integration #3779

Workflow file for this run

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/"