Create control to close the player and exit the current page like Instagram #540
This file contains hidden or 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
name: CI | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened] | |
paths-ignore: | |
- '**.md' | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
# Define global environment variables for the workflow | |
# The version of Flutter to use should use the minimum Dart SDK version supported by the package, | |
# refer to https://docs.flutter.dev/development/tools/sdk/releases. | |
# Note: The version below should be manually updated to the latest second most recent version | |
# after a new stable version comes out. | |
# Current minimum is set to Flutter 3.29. Make this the new minimum once the next | |
# stable version is released | |
FLUTTER_VERSION_MINIMUM_DEFAULT: "3.29.3" | |
FLUTTER_VERSION_LATEST_STABLE_CHANNEL_DEFAULT: "3.x" | |
jobs: | |
setup_matrix: | |
name: Determine Flutter Test Versions # Name for the setup_matrix job | |
runs-on: ubuntu-latest | |
outputs: | |
flutter_versions_json: ${{ steps.set_versions.outputs.versions_json }} | |
flutter_version_minimum: ${{ steps.set_versions.outputs.version_min }} | |
steps: | |
- name: Determine Flutter versions | |
id: set_versions | |
run: | | |
MIN_VERSION_VALUE="${{ env.FLUTTER_VERSION_MINIMUM_DEFAULT }}" | |
LATEST_VERSION_VALUE="${{ env.FLUTTER_VERSION_LATEST_STABLE_CHANNEL_DEFAULT }}" | |
echo "version_min=$MIN_VERSION_VALUE" >> $GITHUB_OUTPUT | |
echo "version_latest=$LATEST_VERSION_VALUE" >> $GITHUB_OUTPUT | |
VERSIONS_JSON=$(jq -c --null-input '$ARGS.positional' --args "$MIN_VERSION_VALUE" "$LATEST_VERSION_VALUE") | |
echo "versions_json=$VERSIONS_JSON" >> $GITHUB_OUTPUT | |
echo "Determined Min Version: $MIN_VERSION_VALUE" | |
echo "Determined Latest Version: $LATEST_VERSION_VALUE" | |
echo "Determined JSON: $VERSIONS_JSON" | |
# Does a sanity check that packages at least pass analysis on the N-1 | |
# versions of Flutter stable if the package claims to support that version. | |
# This is to minimize accidentally making changes that break old versions | |
# (which we don't commit to supporting, but don't want to actively break) | |
# without updating the constraints. | |
lint_and_build: | |
name: Flutter Version ${{ matrix.flutter-version }} Lint and Build. | |
needs: setup_matrix # Ensures this job runs after setup_matrix completes | |
runs-on: ubuntu-latest | |
env: | |
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} | |
FLUTTER_VERSION_MINIMUM: ${{ needs.setup_matrix.outputs.flutter_version_minimum }} | |
strategy: | |
matrix: | |
flutter-version: ${{ fromJSON(needs.setup_matrix.outputs.flutter_versions_json) }} | |
fail-fast: false | |
steps: | |
- name: 📚 Git Checkout | |
uses: actions/checkout@v4 | |
- name: 🐦 Setup Flutter | |
uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: ${{ matrix.flutter-version }} | |
channel: stable | |
cache: true | |
cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }} | |
- name: 📦 Install Dependencies | |
run: flutter packages get | |
- name: ✨ Check Formatting | |
run: dart format --set-exit-if-changed lib | |
# Only continue on error if this is the job for the MINIMUM Flutter version | |
# This allows formatting issues to be warnings on older supported versions | |
# but enforces them on the latest stable or primary development version. | |
continue-on-error: ${{ matrix.flutter-version == env.FLUTTER_VERSION_MINIMUM }} | |
- name: 🕵️ Analyze | |
run: flutter analyze lib | |
- name: 🧪 Run Tests | |
run: flutter test --no-pub --coverage --test-randomize-ordering-seed random | |
- name: 📁 Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
# TODO: Remove the below once we have adequate tests for this library. | |
continue-on-error: true |