docs: direct users to the MDSLens project #54
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: | |
| push: | |
| branches: [master, main, flutter-rewrite] | |
| pull_request: | |
| branches: [master, main, flutter-rewrite] | |
| env: | |
| FLUTTER_VERSION: 3.44.7 | |
| jobs: | |
| flutter: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: subosito/flutter-action@v2 | |
| with: | |
| flutter-version: ${{ env.FLUTTER_VERSION }} | |
| channel: stable | |
| cache: true | |
| - run: flutter pub get | |
| - run: python3 -m py_compile build_app.py | |
| - run: python3 build_app.py --help | |
| - run: python3 -m unittest scripts/test_build_app.py | |
| - run: python3 scripts/verify_icons.py | |
| - run: flutter analyze | |
| - run: flutter test | |
| rust: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-24.04, macos-15, windows-2025] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@1.92.0 | |
| - run: cargo test --manifest-path rust/Cargo.toml --workspace --locked | |
| desktop-build: | |
| needs: [flutter, rust] | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: macos-15 | |
| target: macos | |
| arch: universal | |
| python: python3 | |
| channel: stable | |
| artifact: macos-universal | |
| bundle: build/dist/mdsscope-macos-universal-unsigned.zip | |
| - os: windows-2025 | |
| target: windows | |
| arch: x64 | |
| python: python | |
| channel: stable | |
| artifact: windows-x64 | |
| bundle: build/dist/mdsscope-windows-x64.zip | |
| - os: windows-11-arm | |
| target: windows | |
| arch: arm64 | |
| python: python | |
| channel: main | |
| artifact: windows-arm64 | |
| bundle: build/dist/mdsscope-windows-arm64.zip | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: subosito/flutter-action@v2 | |
| with: | |
| flutter-version: ${{ env.FLUTTER_VERSION }} | |
| # Flutter does not publish every stable SDK archive for ARM64 hosts. | |
| # The action's main-channel mode clones upstream and checks out this | |
| # exact version tag, which is Flutter's documented ARM64 fallback. | |
| channel: ${{ matrix.channel }} | |
| cache: true | |
| - uses: dtolnay/rust-toolchain@1.92.0 | |
| - run: >- | |
| ${{ matrix.python }} build_app.py -p ${{ matrix.target }} | |
| -a ${{ matrix.arch }} -f zip | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ci-${{ matrix.artifact }} | |
| path: ${{ matrix.bundle }} | |
| if-no-files-found: error | |
| linux-build: | |
| needs: [flutter, rust] | |
| runs-on: ${{ matrix.runner }} | |
| container: ubuntu:20.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - arch: x64 | |
| runner: ubuntu-24.04 | |
| channel: stable | |
| - arch: arm64 | |
| runner: ubuntu-24.04-arm | |
| channel: main | |
| steps: | |
| - name: Install baseline build tools | |
| run: | | |
| apt-get update | |
| DEBIAN_FRONTEND=noninteractive apt-get install -y \ | |
| build-essential ca-certificates clang cmake curl git jq libgtk-3-dev libsecret-1-dev ninja-build \ | |
| nasm patchelf perl pkg-config python3 unzip xz-utils | |
| - uses: actions/checkout@v4 | |
| - uses: subosito/flutter-action@v2 | |
| with: | |
| flutter-version: ${{ env.FLUTTER_VERSION }} | |
| channel: ${{ matrix.channel }} | |
| cache: true | |
| - name: Trust the cached Flutter SDK checkout | |
| run: git config --global --add safe.directory "$FLUTTER_ROOT" | |
| - uses: dtolnay/rust-toolchain@1.92.0 | |
| - run: python3 build_app.py -p linux -a ${{ matrix.arch }} -f zip | |
| - run: >- | |
| python3 scripts/verify_linux_portable.py | |
| build/dist/mdsscope-linux-${{ matrix.arch }}.zip --max-glibc 2.31 | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ci-linux-${{ matrix.arch }} | |
| path: build/dist/mdsscope-linux-${{ matrix.arch }}.zip | |
| if-no-files-found: error | |
| linux-portable-runtime: | |
| needs: [linux-build] | |
| runs-on: ${{ matrix.runner }} | |
| container: ${{ matrix.image }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: Ubuntu 24.04 | |
| runner: ubuntu-24.04 | |
| arch: x64 | |
| image: ubuntu:24.04 | |
| family: debian | |
| launch: true | |
| - name: Fedora 44 | |
| runner: ubuntu-24.04 | |
| arch: x64 | |
| image: fedora:44 | |
| family: fedora | |
| launch: true | |
| - name: Enterprise Linux 10 | |
| runner: ubuntu-24.04 | |
| arch: x64 | |
| image: rockylinux/rockylinux:10 | |
| family: enterprise | |
| launch: false | |
| - name: Enterprise Linux 10 ARM64 | |
| runner: ubuntu-24.04-arm | |
| arch: arm64 | |
| image: rockylinux/rockylinux:10 | |
| family: enterprise | |
| launch: false | |
| name: Portable Linux / ${{ matrix.name }} | |
| steps: | |
| - name: Install Ubuntu verifier runtime | |
| if: matrix.family == 'debian' | |
| shell: bash | |
| run: | | |
| apt-get update | |
| DEBIAN_FRONTEND=noninteractive apt-get install -y \ | |
| binutils git libegl-mesa0 libegl1 libgl1-mesa-dri \ | |
| libgles2 libgtk-3-0t64 libsecret-1-0 libstdc++6 python3 unzip xvfb | |
| - name: Install Fedora verifier runtime | |
| if: matrix.family == 'fedora' | |
| run: >- | |
| dnf install -y binutils git gnome-settings-daemon gtk3 libepoxy | |
| libglvnd-egl libsecret libstdc++ mesa-dri-drivers mesa-libEGL | |
| python3 unzip | |
| xorg-x11-server-Xvfb | |
| - name: Install Enterprise Linux verifier runtime | |
| if: matrix.family == 'enterprise' | |
| run: >- | |
| dnf install -y binutils git gtk3 libepoxy libsecret libstdc++ | |
| python3 unzip | |
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: ci-linux-${{ matrix.arch }} | |
| path: build/dist | |
| - name: Verify portable dependency closure | |
| run: >- | |
| python3 scripts/verify_linux_portable.py | |
| build/dist/mdsscope-linux-${{ matrix.arch }}.zip | |
| --max-glibc 2.31 | |
| - name: Smoke-launch portable application | |
| if: matrix.launch | |
| env: | |
| LIBGL_ALWAYS_SOFTWARE: "1" | |
| run: >- | |
| python3 scripts/verify_linux_portable.py | |
| build/dist/mdsscope-linux-${{ matrix.arch }}.zip | |
| --max-glibc 2.31 --launch | |
| android-build: | |
| needs: [flutter, rust] | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: "17" | |
| - uses: subosito/flutter-action@v2 | |
| with: | |
| flutter-version: ${{ env.FLUTTER_VERSION }} | |
| channel: stable | |
| cache: true | |
| - uses: dtolnay/rust-toolchain@1.92.0 | |
| - run: '"$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" "ndk;28.2.13676358"' | |
| - run: python3 build_app.py -p android -f apk | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ci-android | |
| path: build/dist/*.apk | |
| if-no-files-found: error | |
| apple-mobile-build: | |
| needs: [flutter, rust] | |
| runs-on: macos-15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: subosito/flutter-action@v2 | |
| with: | |
| flutter-version: ${{ env.FLUTTER_VERSION }} | |
| channel: stable | |
| cache: true | |
| - uses: dtolnay/rust-toolchain@1.92.0 | |
| - run: python3 build_app.py -p ios -p ipados -f unsigned-ipa zip | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ci-apple-mobile | |
| path: | | |
| build/dist/*-unsigned.ipa | |
| build/dist/*-unsigned.zip | |
| if-no-files-found: error |