161 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
| name: "All the sdk specific jobs"
 | |
| 
 | |
| on:
 | |
|   workflow_call:
 | |
| 
 | |
| jobs:
 | |
|   e2ee_test:
 | |
|     runs-on: ubuntu-latest
 | |
|     timeout-minutes: 30
 | |
|     strategy:
 | |
|       matrix:
 | |
|         homeserver: [synapse, dendrite, conduit]
 | |
|       # since the dendrite job is optional, actually run all tests to the end instead of failing on first error.
 | |
|       fail-fast: false
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - run: cat .github/workflows/versions.env >> $GITHUB_ENV
 | |
|       - uses: dart-lang/setup-dart@a57a6c04cf7d4840e88432aad6281d1e125f0d46
 | |
|         with:
 | |
|           sdk: ${{ env.dart_version }}
 | |
|       - uses: famedly/backend-build-workflows/.github/actions/rust-prepare@v4
 | |
|       - name: Run tests
 | |
|         run: |
 | |
|           export HOMESERVER_IMPLEMENTATION=${{matrix.homeserver}}
 | |
|           export HOMESERVER="localhost:80"
 | |
|           scripts/integration-server-${{matrix.homeserver}}.sh 2>&1 > /dev/null &
 | |
|           sudo apt-get update && sudo apt-get install --no-install-recommends --no-install-suggests -y libssl3 sqlite3 libsqlite3-dev
 | |
|           source scripts/integration-create-environment-variables.sh
 | |
|           scripts/integration-prepare-homeserver.sh
 | |
|           scripts/prepare.sh
 | |
|           scripts/prepare_vodozemac.sh
 | |
|           scripts/test_driver.sh          
 | |
| 
 | |
|   coverage_without_olm:
 | |
|     runs-on: ubuntu-latest
 | |
|     timeout-minutes: 20
 | |
|     env:
 | |
|       NO_OLM: 1
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - run: cat .github/workflows/versions.env >> $GITHUB_ENV
 | |
|       - uses: dart-lang/setup-dart@a57a6c04cf7d4840e88432aad6281d1e125f0d46
 | |
|         with:
 | |
|           sdk: ${{ env.dart_version }}
 | |
|       - name: Run tests
 | |
|         run: |
 | |
|           sudo apt-get update && sudo apt-get install --no-install-recommends --no-install-suggests -y lcov libsqlite3-0 libsqlite3-dev
 | |
|           ./scripts/test.sh          
 | |
|       - uses: actions/upload-artifact@v4
 | |
|         if: ${{ !cancelled() }}
 | |
|         with:
 | |
|           name: coverage_without_olm
 | |
|           path: coverage_dir/
 | |
|           retention-days: 1
 | |
| 
 | |
|   coverage:
 | |
|     #runs-on: arm-ubuntu-latest-16core
 | |
|     runs-on: ubuntu-latest
 | |
|     timeout-minutes: 20
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - run: cat .github/workflows/versions.env >> $GITHUB_ENV
 | |
|       - uses: dart-lang/setup-dart@a57a6c04cf7d4840e88432aad6281d1e125f0d46
 | |
|         with:
 | |
|           sdk: ${{ env.dart_version }}
 | |
|           #architecture: "arm64"
 | |
|       - uses: famedly/backend-build-workflows/.github/actions/rust-prepare@v4
 | |
|       - name: Run tests
 | |
|         run: |
 | |
|           sudo apt-get update && sudo apt-get install --no-install-recommends --no-install-suggests -y lcov libsqlite3-0 libsqlite3-dev libssl3
 | |
|           ./scripts/prepare_vodozemac.sh
 | |
|           ./scripts/test.sh          
 | |
|       - uses: actions/upload-artifact@v4
 | |
|         if: ${{ !cancelled() }}
 | |
|         with:
 | |
|           name: coverage
 | |
|           path: coverage_dir/
 | |
|           retention-days: 1
 | |
| 
 | |
|   merge_coverage:
 | |
|     if: ${{ !cancelled() }}
 | |
|     runs-on: ubuntu-latest
 | |
|     timeout-minutes: 30
 | |
|     needs: [coverage, coverage_without_olm]
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - uses: actions/download-artifact@v4
 | |
|       - name: Merge lcov files
 | |
|         run: |
 | |
|           sudo apt-get -y install lcov
 | |
|           lcov -a coverage/lcov.info -a coverage_without_olm/lcov.info -o merged.info
 | |
|           genhtml merged.info -o merged
 | |
|           echo $(lcov --summary merged.info | grep 'lines......:') >> $GITHUB_STEP_SUMMARY          
 | |
|       - name: Codecov - Upload coverage
 | |
|         uses: codecov/codecov-action@v4
 | |
|         with:
 | |
|           token: ${{secrets.CODECOV_TOKEN}}
 | |
|           files: ./merged.info, ./coverage/lcov.info, ./coverage_without_olm/lcov.info
 | |
|       - uses: actions/upload-artifact@v4
 | |
|         with:
 | |
|           name: merged
 | |
|           path: merged/
 | |
|           retention-days: 1
 | |
| 
 | |
|   review_app_coverage:
 | |
|     if: github.event_name == 'pull_request'
 | |
|     needs: [merge_coverage]
 | |
|     secrets: inherit
 | |
|     uses: famedly/frontend-ci-templates/.github/workflows/review-app.yml@main
 | |
|     with:
 | |
|       projectname: "matrix-dart-sdk-coverage"
 | |
|       pr: ${{ github.event.pull_request.number }}
 | |
|       environment: "review"
 | |
|       artifact-name: "merged"
 | |
| 
 | |
|   dart_web_compatible:
 | |
|     runs-on: ubuntu-latest
 | |
|     timeout-minutes: 30
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - run: cat .github/workflows/versions.env >> $GITHUB_ENV
 | |
|       - uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa
 | |
|         with:
 | |
|           flutter-version: ${{ env.flutter_version }}
 | |
|           cache: true
 | |
|       - name: Ensure SDK compiles on web
 | |
|         run: |
 | |
|           pushd web_test
 | |
|           dart pub get
 | |
|           dart run webdev build          
 | |
| 
 | |
|   database_web_tests:
 | |
|     runs-on: ubuntu-latest
 | |
|     timeout-minutes: 10
 | |
|     env:
 | |
|       NO_OLM: 1
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - run: cat .github/workflows/versions.env >> $GITHUB_ENV
 | |
|       - uses: dart-lang/setup-dart@a57a6c04cf7d4840e88432aad6281d1e125f0d46
 | |
|         with:
 | |
|           sdk: ${{ env.dart_version }}
 | |
|       - uses: browser-actions/setup-chrome@v1
 | |
|       - name: Run tests
 | |
|         run: |
 | |
|           dart pub get
 | |
|           dart test test/box_test.dart --platform chrome          
 | |
| 
 | |
|   pub-dev-dry-run:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - run: cat .github/workflows/versions.env >> $GITHUB_ENV
 | |
|       - uses: dart-lang/setup-dart@a57a6c04cf7d4840e88432aad6281d1e125f0d46
 | |
|         with:
 | |
|           sdk: ${{ env.dart_version }}
 | |
|       - name: pub.dev publish dry run
 | |
|         run: |
 | |
|           dart pub get
 | |
|           dart pub publish --dry-run          
 |