name: Dart CI on: push: branches: - main pull_request: defaults: run: shell: bash env: PUB_ENVIRONMENT: bot.github permissions: read-all concurrency: group: dart-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: dart-ci: name: Dart CI ${{ matrix.target }} runs-on: ubuntu-22.04 strategy: matrix: target: ['generate', 'analyze', 'test'] steps: - name: Cache dependencies uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3 with: path: ~/.pub-cache/hosted key: dart-ci - name: Checkout repository uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 - name: Install dart uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f # v1 - name: Setup run: ./tool/setup.sh - name: Generate if: matrix.target == 'generate' run: | # Needed for the sources git submodule update --init --depth=1 ./tool/generate-file-icons.sh ./tool/generate-specs.sh ./tool/generate-nextcloud.sh ./tool/generate-neon.sh ./tool/generate-app.sh if [[ `git status --porcelain` ]]; then echo "There are uncommitted changes:" git diff exit 1 fi - name: Analyze if: matrix.target == 'analyze' run: | melos run format-check melos run analyze - name: Test if: matrix.target == 'test' run: | ./tool/build-dev-container.sh melos run test