A framework for building convergent cross-platform Nextcloud clients using Flutter.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

69 lines
1.6 KiB

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