name: CI on: [push, pull_request] env: PUB_ENVIRONMENT: bot.github jobs: # Compile the latest sqlite3 library, which will be used to run tests in moor # and sqlparser compile_sqlite3: name: "Compile sqlite3 for tests" runs-on: ubuntu-20.04 env: SQLITE_VERSION: "3350500" steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 id: cache_build with: path: /tmp/sqlite/out/ key: ${{ runner.os }}-${{ env.SQLITE_VERSION }} - name: Compile sqlite3 if: steps.cache_build.outputs.cache-hit != 'true' run: | cd /tmp/ mkdir sqlite cd sqlite curl https://sqlite.org/2021/sqlite-autoconf-$SQLITE_VERSION.tar.gz --output sqlite.tar.gz tar zxvf sqlite.tar.gz cd sqlite-autoconf-$SQLITE_VERSION ./configure make mkdir ../out cp sqlite3 ../out cp .libs/libsqlite3.so ../out - name: Upload built sqlite3 binaries uses: actions/upload-artifact@v2 with: name: sqlite3 path: /tmp/sqlite/out/ if-no-files-found: error retention-days: 1 moor: name: "drift package" needs: [compile_sqlite3] runs-on: ubuntu-20.04 defaults: run: working-directory: drift steps: # setup - uses: actions/checkout@v2 - uses: dart-lang/setup-dart@v1 - name: Download sqlite3 uses: actions/download-artifact@v2 with: name: sqlite3 path: /tmp/sqlite/out/ - name: Use downloaded sqlite3 run: | chmod a+x /tmp/sqlite/out/sqlite3 echo "/tmp/sqlite/out" >> $GITHUB_PATH echo "LD_LIBRARY_PATH=/tmp/sqlite/out" >> $GITHUB_ENV - name: Check sqlite3 version run: sqlite3 --version - run: dart pub upgrade # analysis - run: dart format -o none --set-exit-if-changed . name: dartfmt - run: dart analyze --fatal-infos --fatal-warnings # build, test and upload coverage - run: dart run build_runner build --delete-conflicting-outputs - run: dart test #-x background_isolate --coverage=coverage # - uses: actions/upload-artifact@v2 # with: # name: moor-coverage-data # path: | # moor/coverage/ # moor/.dart_tool/package_config.json # retention-days: 1 drift_dev: runs-on: ubuntu-20.04 defaults: run: working-directory: drift_dev steps: # setup - uses: actions/checkout@v2 - uses: dart-lang/setup-dart@v1 - run: dart pub upgrade # analysis - run: dart format -o none --set-exit-if-changed . name: dartfmt - run: dart analyze --fatal-infos --fatal-warnings sqlparser: runs-on: ubuntu-20.04 needs: [compile_sqlite3] defaults: run: working-directory: sqlparser steps: # setup - uses: actions/checkout@v2 - uses: dart-lang/setup-dart@v1 - name: Download sqlite3 uses: actions/download-artifact@v2 with: name: sqlite3 path: /tmp/sqlite/out/ - name: Use downloaded sqlite3 run: | chmod a+x /tmp/sqlite/out/sqlite3 echo "/tmp/sqlite/out" >> $GITHUB_PATH echo "LD_LIBRARY_PATH=/tmp/sqlite/out" >> $GITHUB_ENV - run: dart pub upgrade # analysis - run: dart format -o none --set-exit-if-changed . name: dartfmt - run: dart analyze --fatal-infos --fatal-warnings # tests and coverage - run: dart test #--coverage=coverage # - uses: actions/upload-artifact@v2 # with: # name: sqlparser-coverage-data # path: | # sqlparser/coverage/ # sqlparser/.dart_tool/package_config.json # retention-days: 1 misc_integration_tests: name: "Integration tests" needs: [compile_sqlite3] runs-on: ubuntu-20.04 services: postgres: image: postgres env: POSTGRES_PASSWORD: postgres options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 5432:5432 steps: - uses: actions/checkout@v2 - uses: dart-lang/setup-dart@v1 with: release-channel: beta - name: Download sqlite3 uses: actions/download-artifact@v2 with: name: sqlite3 path: /tmp/sqlite/out/ - name: Use downloaded sqlite3 run: | chmod a+x /tmp/sqlite/out/sqlite3 echo "/tmp/sqlite/out" >> $GITHUB_PATH echo "LD_LIBRARY_PATH=/tmp/sqlite/out" >> $GITHUB_ENV - run: tool/misc_integration_test.sh # upload_coverage: # runs-on: ubuntu-20.04 # needs: [moor, sqlparser] # steps: # - uses: actions/checkout@v2 # - uses: dart-lang/setup-dart@v1 # - run: dart pub upgrade # name: "Setup coverage processor" # working-directory: extras/tooling # - uses: actions/download-artifact@v2 # with: # name: moor-coverage-data # path: moor/ # - uses: actions/download-artifact@v2 # with: # name: sqlparser-coverage-data # path: sqlparser/ # - run: dart run extras/tooling/bin/coverage.dart # name: "Format coverage from raw data" # - uses: codecov/codecov-action@v1 # with: # file: lcov.info