[Part 1] Build linux version #3028
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
pull_request: | |
name: Tests | |
env: | |
FLUTTER_VERSION: 3.16.5 | |
jobs: | |
code_analyze: | |
name: Analyze code | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
actions: write | |
checks: write | |
pull-requests: write | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup flutter | |
uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: ${{ env.FLUTTER_VERSION }} | |
channel: "stable" | |
cache: true | |
cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }}" | |
- uses: webfactory/[email protected] | |
with: | |
ssh-private-key: ${{ secrets.SSH_KEY }} | |
- name: Run code analysis | |
run: ./scripts/code_analyze.sh | |
widget_test: | |
name: Widget test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup flutter | |
uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: ${{ env.FLUTTER_VERSION }} | |
channel: "stable" | |
cache: true | |
cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }}" | |
- uses: webfactory/[email protected] | |
with: | |
ssh-private-key: ${{ secrets.SSH_KEY }} | |
- name: Run widget test | |
run: | | |
flutter pub get && flutter pub run build_runner build --delete-conflicting-outputs | |
flutter test | |
# integration_test: | |
# name: Integration test | |
# runs-on: macos-latest | |
# strategy: | |
# matrix: | |
# homeserver: | |
# - synapse | |
# - dendrite | |
# - conduit | |
# # flavor: | |
# # - nongoogle | |
# fail-fast: false | |
# steps: | |
# - name: Checkout repo | |
# uses: actions/checkout@v4 | |
# - name: Setup flutter | |
# uses: subosito/flutter-action@v2 | |
# with: | |
# flutter-version: ${{ env.FLUTTER_VERSION }} | |
# channel: "stable" | |
# cache: true | |
# - name: Setup Java | |
# uses: actions/setup-java@v4 | |
# with: | |
# distribution: "temurin" | |
# java-version: "11" | |
# - name: Install dependencies | |
# run: | | |
# brew install ldns grep scrcpy ffmpeg docker | |
# flutter pub get | |
# colima start | |
# - name: Prepare homeservers | |
# env: | |
# HOMESERVER: localhost | |
# run: | | |
# # Create test users environment variables | |
# source ./scripts/integration-create-environment-variables.sh | |
# # Create matrix homeservers containers | |
# ./scripts/integration-server-${{ matrix.homeserver }}.sh | |
# # Set homeserver IP and create test users | |
# ./scripts/integration-prepare-homeserver.sh | |
# # Set users environment variables for next step | |
# echo USER1_NAME="alice" >> $GITHUB_ENV | |
# echo USER1_PW="AliceInWonderland">> $GITHUB_ENV | |
# echo USER2_NAME="bob" >> $GITHUB_ENV | |
# echo USER2_PW="JoWirSchaffenDas" >> $GITHUB_ENV | |
# # - name: Run integration tests for non-Google builds | |
# # uses: reactivecircus/android-emulator-runner@v2 | |
# # if: matrix.flavor == 'nongoogle' | |
# # env: | |
# # HOMESERVER: localhost | |
# # with: | |
# # api-level: 31 | |
# # target: google_apis | |
# # arch: x86_64 | |
# # script: | | |
# # scrcpy --no-display --record video-${{ matrix.flavor }}.mkv & | |
# # flutter test integration_test --dart-define=HOMESERVER=$HOMESERVER --dart-define=USER1_NAME=$USER1_NAME --dart-define=USER2_NAME=$USER2_NAME --dart-define=USER1_PW=$USER1_PW --dart-define=USER2_PW=$USER2_PW || ( sleep 10 && exit 1 ) | |
# # # Convert the video record to mp4 | |
# # ffmpeg -i video-${{ matrix.flavor }}.mkv -vf scale=iw/2:-2 -crf 40 -b:v 2000k -preset fast video-${{ matrix.flavor }}.mp4 || true | |
# # timeout-minutes: 30 | |
# - name: Run integration tests for Google builds | |
# uses: reactivecircus/android-emulator-runner@v2 | |
# # if: matrix.flavor == 'google' | |
# env: | |
# HOMESERVER: localhost | |
# with: | |
# api-level: 31 | |
# target: google_apis | |
# arch: x86_64 | |
# script: | | |
# scrcpy --no-display --record video-${{ matrix.flavor }}.mkv & | |
# flutter test integration_test --dart-define=HOMESERVER=$HOMESERVER --dart-define=USER1_NAME=$USER1_NAME --dart-define=USER2_NAME=$USER2_NAME --dart-define=USER1_PW=$USER1_PW --dart-define=USER2_PW=$USER2_PW || ( sleep 10 && exit 1 ) | |
# # Convert the video record to mp4 | |
# ffmpeg -i video-${{ matrix.flavor }}.mkv -vf scale=iw/2:-2 -crf 40 -b:v 2000k -preset fast video-${{ matrix.flavor }}.mp4 || true | |
# pre-emulator-launch-script: | | |
# git apply ./scripts/enable-android-google-services.patch | |
# timeout-minutes: 30 | |
# - name: Upload video | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: integration-test-recording | |
# path: video-${{ matrix.flavor }}.mp4 |