Skip to content

Flutter Integration Tests #20

Flutter Integration Tests

Flutter Integration Tests #20

on:
# pull_request:
# branches: [ main ]
# push:
workflow_dispatch:
name: App Integration Tests
env:
NDK_VERSION: 25.2.9519653
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
run_checker:
runs-on: ubuntu-22.04
name: Check legibility
outputs:
should_run_all: ${{steps.PR.outputs.pr_found == 'true' && contains(steps.PR.outputs.pr_labels, 'ci-test-ui-all')}}
should_run_desktop: ${{steps.PR.outputs.pr_found == 'true' && contains(steps.PR.outputs.pr_labels, 'ci-test-ui-desktop')}}
should_run_emulator: ${{steps.PR.outputs.pr_found == 'true' && contains(steps.PR.outputs.pr_labels, 'ci-test-ui-emulators')}}
should_run_ios: ${{steps.PR.outputs.pr_found == 'true' && contains(steps.PR.outputs.pr_labels, 'ci-test-ui-ios')}}
should_run_android: ${{steps.PR.outputs.pr_found == 'true' && contains(steps.PR.outputs.pr_labels, 'ci-test-ui-android')}}
steps:
- uses: 8BitJonny/[email protected]
id: PR
with:
# Verbose setting SHA when using Pull_Request event trigger to fix #16. (For push even trigger this is not necessary.)
sha: ${{ github.event.pull_request.head.sha }}
# Only return if PR is still open. (By default it returns PRs in any state.)
filterOutClosed: true
# Only return if PR is not in draft state. (By default it returns PRs in any state.)
# filterOutDraft: true
- run: echo "PR $prNumber $prTitle at $prUrl is labeled $prLabels. It should run a demo build; $contains"
if: steps.PR.outputs.pr_found == 'true'
env:
# Direct access to common PR properties
prNumber: ${{ steps.PR.outputs.number }}
prUrl: ${{ steps.PR.outputs.pr_url }}
prTitle: ${{ steps.PR.outputs.pr_title }}
prBody: ${{ steps.PR.outputs.pr_body }}
prCreatedAt: ${{ steps.PR.outputs.pr_created_at }}
prMergedAt: ${{ steps.PR.outputs.pr_merged_at }}
prClosedAt: ${{ steps.PR.outputs.pr_closed_at }}
prLabels: ${{ steps.PR.outputs.pr_labels }}
contains: ${{ contains(steps.PR.outputs.pr_labels, 'ci-test-ui') }}
#### ####### ######
## ## ## ## ##
## ## ## ##
## ## ## ######
## ## ## ##
## ## ## ## ##
#### ####### ######
flutter-ios:
runs-on: macos-latest
environment: release
name: iOS
needs:
- run_checker
# if: ${{ github.ref == 'refs/heads/main' || needs.run_checker.outputs.should_run_ios != 'false' || needs.run_checker.outputs.should_run_emulator != 'false' || needs.run_checker.outputs.should_run_all != 'false' }}
continue-on-error: true
strategy:
matrix:
include:
- test: "Smoke"
device: 'iPhone 14'
steps:
- uses: actions/checkout@v4
- name: Install supported toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: Swatinem/rust-cache@v2
- name: Install cargo-make
uses: davidB/rust-cargo-make@v1
- name: Rust iOS Setup
run: cargo make setup-ios
- uses: subosito/flutter-action@v2
name: Set up flutter
with:
flutter-version: '3.24'
channel: 'stable'
- uses: actions/setup-python@v4
with:
python-version: 3.8
- uses: michaelkaye/setup-matrix-synapse@main
with:
uploadLogs: true
httpPort: 8118
disableRateLimiting: true
public_baseurl: "http://10.0.2.2:8080/"
customModules: synapse_super_invites
customConfig: |
email:
smtp_host: localhost
smtp_port: 1025
force_tls: false
require_transport_security: false
enable_tls: false
notif_from: "Your Friendly %(app)s homeserver <[email protected]>"
can_verify_email: true
modules:
- module: "synapse_super_invites.SynapseSuperInvites"
config:
sql_url: "sqlite://"
generate_registration_token: true
- name: Install & Run MailHog
run: |
wget -q https://github.com/mailhog/MailHog/releases/download/v1.0.1/MailHog_linux_amd64
sudo chmod +x MailHog_linux_amd64
./MailHog_linux_amd64 &
- name: Build Native
run: cargo make --profile release ios-sim
- name: Write environment
working-directory: ./app
shell: bash
run: |
cat <<EOF > .env.production
RAGESHAKE_URL=http://10.0.2.2:9110/api/listing
RAGESHAKE_APP_NAME=acter-ci
DEFAULT_HOMESERVER_URL=http://10.0.2.2:8118
DEFAULT_HOMESERVER_NAME=10.0.2.2
isCI=true
EOF
dart run enven
echo "Show .env files"
ls -ltash .env*
- uses: futureware-tech/simulator-action@v3
id: ios_simulator
timeout-minutes: 10
with:
model: ${{matrix.device}}
- name: Flutter setup
working-directory: app
run: |
flutter pub get
- name: Run flutter integration tests
timeout-minutes: 10
run: .github/scripts/flutter-integration-tests.sh Smoke
- name: Upload artifacts
uses: actions/upload-artifact@v1
if: failure()
with:
name: ios-convtest-report
path: /tmp/ConvenientTest/
# # file an error if this failed on `main` post-merge
# - name: Report issue
# if: ${{ github.ref == 'refs/heads/main' && failure() }}
# uses: JasonEtco/create-an-issue@v2
# env:
# GITHUB_TOKEN: ${{ github.token }}
# TITLE: "iOS integration tests failed on main"
# FAILED_RUN_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}/jobs/${{ github.job }}
# ARTIFACT_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
# with:
# assignees: gnunicorn
# filename: .github/templates/failure-report-template.md.tmpl
# update_existing: true
# - name: Clean up keychain and provisioning profile
# if: ${{ always() }}
# run: |
# security delete-keychain $RUNNER_TEMP/app-signing.keychain-db
# rm ~/Library/MobileDevice/Provisioning\ Profiles/*
# rm .github/assets/git-crypt-key
### ## ## ######## ######## ####### #### ########
## ## ### ## ## ## ## ## ## ## ## ## ##
## ## #### ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ######## ## ## ## ## ##
######### ## #### ## ## ## ## ## ## ## ## ##
## ## ## ### ## ## ## ## ## ## ## ## ##
## ## ## ## ######## ## ## ####### #### ########
android:
runs-on: ubuntu-22.04
name: Android
continue-on-error: true
# if: ${{ github.ref == 'refs/heads/main' || needs.run_checker.outputs.should_run_android != 'false' || needs.run_checker.outputs.should_run_emulator != 'false' || needs.run_checker.outputs.should_run_all != 'false' }}
needs:
- run_checker
strategy:
matrix:
api_level: [34]
test: ["Auth", "Updates", "Events", "Subspace", "SuperInvites", "Tasks", "Pins", "Attachments"] # "Bug Reporting", disabled as it needs a rageshake server
include:
- api_level: 23 # MinimalSDK version Smoke Test
test: "Smoke"
steps:
- uses: actions/checkout@v4
- name: Install supported toolchain
id: rust_toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: jlumbroso/free-disk-space@main
name: Free Disk Space (Ubuntu)
with:
tool-cache: true
android: false
- uses: Swatinem/rust-cache@v2
id: cache-cargo
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: gradle
- name: Install cargo-make
if: steps.cache-cargo.outputs.cache-hit != 'true'
uses: davidB/rust-cargo-make@v1
- name: Rust Android Setup
run: cargo make setup-android
- name: Install NDK $NDK_VERSION
run: |
ANDROID_ROOT=/usr/local/lib/android
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager
echo "y" | $SDKMANAGER "ndk;$NDK_VERSION"
echo "Installed $NDK_VERSION"
ls /usr/local/lib/android/sdk/ndk/$NDK_VERSION
- uses: subosito/flutter-action@v2
name: Set up flutter
with:
flutter-version: '3.24'
channel: 'stable'
- uses: actions/setup-python@v4
with:
python-version: 3.8
- uses: michaelkaye/setup-matrix-synapse@main
with:
uploadLogs: true
httpPort: 8118
disableRateLimiting: true
public_baseurl: "http://10.0.2.2:8080/"
customModules: synapse_super_invites
customConfig: |
email:
smtp_host: localhost
smtp_port: 1025
force_tls: false
require_transport_security: false
enable_tls: false
notif_from: "Your Friendly %(app)s homeserver <[email protected]>"
can_verify_email: true
modules:
- module: "synapse_super_invites.SynapseSuperInvites"
config:
sql_url: "sqlite://"
generate_registration_token: true
- name: Install & Run MailHog
run: |
wget -q https://github.com/mailhog/MailHog/releases/download/v1.0.1/MailHog_linux_amd64
sudo chmod +x MailHog_linux_amd64
./MailHog_linux_amd64 &
- name: Build Native
run: |
export ANDROID_NDK_HOME=/usr/local/lib/android/sdk/ndk/$NDK_VERSION
cargo make android-dev
- name: Flutter setup
working-directory: app
run: flutter pub get
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Gradle cache
uses: gradle/actions/setup-gradle@v3
- name: AVD cache
uses: actions/cache@v4
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-${{matrix.api_level}}
- name: Write environment
working-directory: ./app
shell: bash
run: |
cat <<EOF > .env.production
RAGESHAKE_URL=http://10.0.2.2:9110/api/listing
RAGESHAKE_APP_NAME=acter-ci
DEFAULT_HOMESERVER_URL=http://10.0.2.2:8118
DEFAULT_HOMESERVER_NAME=10.0.2.2
isCI=true
EOF
dart run enven
echo "Show .env files"
ls -ltash .env*
- name: create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{matrix.api_level}}
arch: x86_64
target: google_apis
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
# disable-animations: false
script: echo "Generated AVD snapshot for caching."
- name: Run integration tests on android
uses: reactivecircus/android-emulator-runner@v2
timeout-minutes: 10
with:
api-level: ${{matrix.api_level}}
arch: x86_64
target: google_apis
force-avd-creation: false
# emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
# disable-animations: true
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
# emulator-build: 7425822 # workaround to emulator bug: https://github.com/ReactiveCircus/android-emulator-runner/issues/160
script: |
sleep 15
./.github/scripts/flutter-integration-tests.sh --run-only "${{matrix.test}}"
- name: Upload artifacts
uses: actions/upload-artifact@v1
if: failure()
with:
name: android-convtest-report-${{matrix.api_level}}-${{matrix.test}}
path: |
/tmp/ConvenientTest/
# file an error if this failed on `main` post-merge
- name: Report issue
if: ${{ github.ref == 'refs/heads/main' && failure() }}
uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ github.token }}
TITLE: "Android integration tests failed on main"
FAILED_RUN_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}/jobs/${{ github.job }}
ARTIFACT_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
with:
assignees: gnunicorn
filename: .github/templates/failure-report-template.md.tmpl
update_existing: true
## #### ## ## ## ## ## ##
## ## ### ## ## ## ## ##
## ## #### ## ## ## ## ##
## ## ## ## ## ## ## ###
## ## ## #### ## ## ## ##
## ## ## ### ## ## ## ##
######## #### ## ## ####### ## ##
linux-desktop:
runs-on: ubuntu-22.04
name: Linux Desktop
continue-on-error: true
needs:
- run_checker
strategy:
matrix:
test: ["Smoke"] #, "Auth", "Updates", "Events", "Subspace", "SuperInvites", "Tasks", "Pins", "Attachments"] # "Bug Reporting", disabled as it needs a rageshake server
# if: ${{ github.ref == 'refs/heads/main' || needs.run_checker.outputs.should_run_all != 'false' || needs.run_checker.outputs.should_run_desktop != 'false' }}
steps:
- uses: actions/checkout@v4
- name: Install extra deps
run: |
sudo apt-get update -y
sudo apt-get install -y libgtk-3-dev libx11-dev pkg-config cmake ninja-build libblkid-dev liblzma-dev
sudo apt install -y dbus-x11 network-manager upower mpv libmpv-dev
- name: Install supported toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: Swatinem/rust-cache@v2
- name: Install cargo-make
uses: davidB/rust-cargo-make@v1
- uses: subosito/flutter-action@v2
name: Set up flutter
with:
flutter-version: '3.24'
channel: 'stable'
- uses: actions/setup-python@v4
with:
python-version: 3.8
- uses: michaelkaye/setup-matrix-synapse@main
with:
uploadLogs: true
httpPort: 8118
disableRateLimiting: true
public_baseurl: "http://localhost:8080/"
customModules: synapse_super_invites
customConfig: |
email:
smtp_host: localhost
smtp_port: 1025
force_tls: false
require_transport_security: false
enable_tls: false
notif_from: "Your Friendly %(app)s homeserver <[email protected]>"
can_verify_email: true
modules:
- module: "synapse_super_invites.SynapseSuperInvites"
config:
sql_url: "sqlite://"
generate_registration_token: true
- name: Install & Run MailHog
run: |
wget -q https://github.com/mailhog/MailHog/releases/download/v1.0.1/MailHog_linux_amd64
sudo chmod +x MailHog_linux_amd64
./MailHog_linux_amd64 &
- name: Enable Linux Desktop
run: flutter config --enable-linux-desktop
- name: Build Native
run: cargo make desktop
- name: Flutter setup
working-directory: app
run: flutter pub get
- name: Open Keyring
uses: t1m0thyj/unlock-keyring@v1
- name: Write environment
working-directory: ./app
shell: bash
run: |
cat <<EOF > .env.production
RAGESHAKE_URL=http://localhost:9110/api/listing
RAGESHAKE_APP_NAME=acter-ci
DEFAULT_HOMESERVER_URL=http://localhost:8118
DEFAULT_HOMESERVER_NAME=localhost
isCI=true
EOF
dart run enven
echo "Show .env files"
ls -ltash .env*
- name: Run flutter integration tests
working-directory: app
timeout-minutes: 10
run: |
export DISPLAY=:99
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
xvfb_pid=$!
flutter run integration_test/main_test.dart \
-d linux \
--hot \
--host-vmservice-port 9753 \
--disable-service-auth-codes \
--dart-define CI=true \
--dart-define CONVENIENT_TEST_APP_CODE_DIR=lib \
--dart-define MAILHOG_URL=http://localhost:8025 \
--dart-define RAGESHAKE_LISTING_URL=http://localhost:9110/api/listing \
&
subscript_pid=$!
# actual manager runner
dart run convenient_test_manager_dart --enable-report-saver ${{matrix.test}}
exit_status=$?
kill "$xvfb_pid" "$subscript_pid"
exit exit_status
- name: Upload artifacts
uses: actions/upload-artifact@v1
if: failure()
with:
name: linux-desktop-${{matrix.test}}-convtest-report
path: /tmp/ConvenientTest/
# # file an error if this failed on `main` post-merge
# - name: Report issue
# if: ${{ github.ref == 'refs/heads/main' && failure() }}
# uses: JasonEtco/create-an-issue@v2
# env:
# GITHUB_TOKEN: ${{ github.token }}
# TITLE: "Desktop integration tests failed on main"
# FAILED_RUN_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}/jobs/${{ github.job }}
# ARTIFACT_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
# with:
# assignees: gnunicorn
# filename: .github/templates/failure-report-template.md.tmpl
# update_existing: true
## ## #### ## ## ######## ####### ## ## ######
## ## ## ## ### ## ## ## ## ## ## ## ## ## ##
## ## ## ## #### ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ## ## ## ## ## ## ######
## ## ## ## ## #### ## ## ## ## ## ## ## ##
## ## ## ## ## ### ## ## ## ## ## ## ## ## ##
### ### #### ## ## ######## ####### ### ### ######
windows-desktop:
runs-on: windows-latest
name: Windows Desktop
continue-on-error: true
needs:
- run_checker
strategy:
matrix:
test: ["Smoke"] #, "Auth", "Updates", "Events", "Subspace", "SuperInvites", "Tasks", "Pins", "Attachments"] # "Bug Reporting", disabled as it needs a rageshake server
# if: ${{ github.ref == 'refs/heads/main' || needs.run_checker.outputs.should_run_all != 'false' || needs.run_checker.outputs.should_run_desktop != 'false' }}
steps:
- uses: actions/checkout@v4
- name: Install supported toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: Swatinem/rust-cache@v2
- name: Install cargo-make
uses: davidB/rust-cargo-make@v1
- uses: subosito/flutter-action@v2
name: Set up flutter
with:
flutter-version: '3.24'
channel: 'stable'
- uses: actions/setup-python@v4
with:
python-version: 3.8
- uses: michaelkaye/setup-matrix-synapse@main
with:
uploadLogs: true
httpPort: 8118
disableRateLimiting: true
public_baseurl: "http://localhost:8080/"
customModules: synapse_super_invites
customConfig: |
email:
smtp_host: localhost
smtp_port: 1025
force_tls: false
require_transport_security: false
enable_tls: false
notif_from: "Your Friendly %(app)s homeserver <[email protected]>"
can_verify_email: true
modules:
- module: "synapse_super_invites.SynapseSuperInvites"
config:
sql_url: "sqlite://"
generate_registration_token: true
- name: Install & Run MailHog
run: |
wget -q https://github.com/mailhog/MailHog/releases/download/v1.0.1/MailHog_windows_amd64
sudo chmod +x MailHog_windows_amd64
./MailHog_windows_amd64 &
- name: Enable Windows Desktop
run: flutter config --enable-windows-desktop
- name: Build Native
run: cargo make desktop
- name: Flutter setup
working-directory: app
run: flutter pub get
- name: Write environment
working-directory: ./app
shell: bash
run: |
cat <<EOF > .env.production
RAGESHAKE_URL=http://localhost:9110/api/listing
RAGESHAKE_APP_NAME=acter-ci
DEFAULT_HOMESERVER_URL=http://localhost:8118
DEFAULT_HOMESERVER_NAME=localhost
isCI=true
EOF
dart run enven
echo "Show .env files"
ls -ltash .env*
- name: Run flutter integration tests
working-directory: app
timeout-minutes: 10
run: |
flutter run integration_test/main_test.dart \
-d Windows \
--hot \
--host-vmservice-port 9753 \
--disable-service-auth-codes \
--dart-define CI=true \
--dart-define CONVENIENT_TEST_APP_CODE_DIR=lib \
--dart-define MAILHOG_URL=http://localhost:8025 \
--dart-define RAGESHAKE_LISTING_URL=http://localhost:9110/api/listing \
&
subscript_pid=$!
# actual manager runner
dart run convenient_test_manager_dart --enable-report-saver ${{matrix.test}}
exit_status=$?
kill "$subscript_pid"
exit exit_status
- name: Upload artifacts
uses: actions/upload-artifact@v1
if: failure()
with:
name: windows-desktop-${{matrix.test}}-convtest-report
path: /tmp/ConvenientTest/
# # file an error if this failed on `main` post-merge
# - name: Report issue
# if: ${{ github.ref == 'refs/heads/main' && failure() }}
# uses: JasonEtco/create-an-issue@v2
# env:
# GITHUB_TOKEN: ${{ github.token }}
# TITLE: "Desktop integration tests failed on main"
# FAILED_RUN_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}/jobs/${{ github.job }}
# ARTIFACT_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
# with:
# assignees: gnunicorn
# filename: .github/templates/failure-report-template.md.tmpl
# update_existing: true
## ## ### ###### ####### ######
### ### ## ## ## ## ## ## ## ##
#### #### ## ## ## ## ## ##
## ### ## ## ## ## ## ## ######
## ## ######### ## ## ## ##
## ## ## ## ## ## ## ## ## ##
## ## ## ## ###### ####### ######
macos-desktop:
runs-on: macos-12
name: MacOS Desktop
continue-on-error: true
needs:
- run_checker
strategy:
matrix:
test: ["Smoke"] #, "Auth", "Updates", "Events", "Subspace", "SuperInvites", "Tasks", "Pins", "Attachments"] # "Bug Reporting", disabled as it needs a rageshake server
# if: ${{ github.ref == 'refs/heads/main' || needs.run_checker.outputs.should_run_all != 'false' || needs.run_checker.outputs.should_run_desktop != 'false' }}
steps:
- uses: actions/checkout@v4
- name: Install supported toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: Swatinem/rust-cache@v2
- name: Install cargo-make
uses: davidB/rust-cargo-make@v1
- uses: subosito/flutter-action@v2
name: Set up flutter
with:
flutter-version: '3.24'
channel: 'stable'
- uses: actions/setup-python@v4
with:
python-version: 3.8
- uses: michaelkaye/setup-matrix-synapse@main
with:
uploadLogs: true
httpPort: 8118
disableRateLimiting: true
public_baseurl: "http://localhost:8080/"
customModules: synapse_super_invites
customConfig: |
email:
smtp_host: localhost
smtp_port: 1025
force_tls: false
require_transport_security: false
enable_tls: false
notif_from: "Your Friendly %(app)s homeserver <[email protected]>"
can_verify_email: true
modules:
- module: "synapse_super_invites.SynapseSuperInvites"
config:
sql_url: "sqlite://"
generate_registration_token: true
- name: Install & Run MailHog
shell: bash
run: |
wget -q https://github.com/mailhog/MailHog/releases/download/v1.0.1/MailHog_darwin_amd64
sudo chmod +x MailHog_darwin_amd64
./MailHog_windows_amd64 &
- name: Enable MacOS Desktop
run: flutter config --enable-macos-desktop
- name: Build Native
run: cargo make desktop
- name: Flutter setup
working-directory: app
run: flutter pub get
- name: Write environment
working-directory: ./app
shell: bash
run: |
cat <<EOF > .env.production
RAGESHAKE_URL=http://localhost:9110/api/listing
RAGESHAKE_APP_NAME=acter-ci
DEFAULT_HOMESERVER_URL=http://localhost:8118
DEFAULT_HOMESERVER_NAME=localhost
isCI=true
EOF
dart run enven
echo "Show .env files"
ls -ltash .env*
- name: Run flutter integration tests
working-directory: app
timeout-minutes: 10
shell: bash
run: |
flutter run integration_test/main_test.dart \
-d macOS \
--hot \
--host-vmservice-port 9753 \
--disable-service-auth-codes \
--dart-define CI=true \
--dart-define CONVENIENT_TEST_APP_CODE_DIR=lib \
--dart-define MAILHOG_URL=http://localhost:8025 \
--dart-define RAGESHAKE_LISTING_URL=http://localhost:9110/api/listing \
&
subscript_pid=$!
# actual manager runner
dart run convenient_test_manager_dart --enable-report-saver ${{matrix.test}}
exit_status=$?
kill "$subscript_pid"
exit exit_status
- name: Upload artifacts
uses: actions/upload-artifact@v1
if: failure()
with:
name: macos-desktop-${{matrix.test}}-convtest-report
path: /tmp/ConvenientTest/
# # file an error if this failed on `main` post-merge
# - name: Report issue
# if: ${{ github.ref == 'refs/heads/main' && failure() }}
# uses: JasonEtco/create-an-issue@v2
# env:
# GITHUB_TOKEN: ${{ github.token }}
# TITLE: "Desktop integration tests failed on main"
# FAILED_RUN_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}/jobs/${{ github.job }}
# ARTIFACT_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
# with:
# assignees: gnunicorn
# filename: .github/templates/failure-report-template.md.tmpl
# update_existing: true