diff --git a/.github/actions/install-briefcase/action.yml b/.github/actions/install-briefcase/action.yml index a9630120..0b789a53 100644 --- a/.github/actions/install-briefcase/action.yml +++ b/.github/actions/install-briefcase/action.yml @@ -25,6 +25,9 @@ inputs: required: false outputs: + installed-repo: + value: ${{ steps.install.outputs.repo }} + description: "The source repo of Briefcase that was installed." installed-version: value: ${{ steps.install.outputs.version }} description: "The version or branch of Briefcase that was installed." @@ -144,4 +147,5 @@ runs: python -m pip install -U "git+${REPO}@${REF}" echo "Installed version: $(briefcase --version)" + echo "repo=${REPO}" >> ${GITHUB_OUTPUT} echo "version=${REF}" >> ${GITHUB_OUTPUT} diff --git a/.github/workflows/app-build-verify.yml b/.github/workflows/app-build-verify.yml index d39aa842..6c28c94e 100644 --- a/.github/workflows/app-build-verify.yml +++ b/.github/workflows/app-build-verify.yml @@ -132,6 +132,7 @@ jobs: - name: Install Briefcase if: ${{ !endsWith(inputs.repository, 'briefcase') }} + id: briefcase uses: ./beeware-.github/.github/actions/install-briefcase - name: Create Briefcase project @@ -147,53 +148,53 @@ jobs: # In the steps below, using the builtin functions for comparison (instead of ==) # allows for case-insensitivity to the inputs for the workflow. - - name: Build macOS app - if: > - startsWith(inputs.runner-os, 'macOS') - && contains(fromJSON('["", "macOS"]'), inputs.target-platform) - && contains(fromJSON('["", "app"]'), inputs.target-format) - run: | - cd tests/apps/verify-${{ inputs.framework }} - briefcase create macOS app - briefcase build macOS app - briefcase package macOS app --adhoc-sign - - - name: Build macOS Xcode project - if: > - startsWith(inputs.runner-os, 'macOS') - && contains(fromJSON('["", "macOS"]'), inputs.target-platform) - && contains(fromJSON('["", "Xcode"]'), inputs.target-format) - run: | - cd tests/apps/verify-${{ inputs.framework }} - briefcase create macOS Xcode - briefcase build macOS Xcode - briefcase package macOS Xcode --adhoc-sign - - - name: Build Windows app - if: > - startsWith(inputs.runner-os, 'Windows') - && contains(fromJSON('["", "Windows"]'), inputs.target-platform) - && contains(fromJSON('["", "app"]'), inputs.target-format) - run: | - unset WIX # force Briefcase to install and use its own version of WiX - - cd tests/apps/verify-${{ inputs.framework }} - briefcase create windows app - briefcase build windows app - briefcase package windows app --adhoc-sign - - - name: Build Windows Visual Studio project - if: > - startsWith(inputs.runner-os, 'Windows') - && contains(fromJSON('["", "Windows"]'), inputs.target-platform) - && contains(fromJSON('["", "VisualStudio"]'), inputs.target-format) - run: | - unset WIX # force Briefcase to install and use its own version of WiX - - cd tests/apps/verify-${{ inputs.framework }} - briefcase create windows VisualStudio - briefcase build windows VisualStudio - briefcase package windows VisualStudio --adhoc-sign +# - name: Build macOS app +# if: > +# startsWith(inputs.runner-os, 'macOS') +# && contains(fromJSON('["", "macOS"]'), inputs.target-platform) +# && contains(fromJSON('["", "app"]'), inputs.target-format) +# run: | +# cd tests/apps/verify-${{ inputs.framework }} +# briefcase create macOS app +# briefcase build macOS app +# briefcase package macOS app --adhoc-sign +# +# - name: Build macOS Xcode project +# if: > +# startsWith(inputs.runner-os, 'macOS') +# && contains(fromJSON('["", "macOS"]'), inputs.target-platform) +# && contains(fromJSON('["", "Xcode"]'), inputs.target-format) +# run: | +# cd tests/apps/verify-${{ inputs.framework }} +# briefcase create macOS Xcode +# briefcase build macOS Xcode +# briefcase package macOS Xcode --adhoc-sign +# +# - name: Build Windows app +# if: > +# startsWith(inputs.runner-os, 'Windows') +# && contains(fromJSON('["", "Windows"]'), inputs.target-platform) +# && contains(fromJSON('["", "app"]'), inputs.target-format) +# run: | +# unset WIX # force Briefcase to install and use its own version of WiX +# +# cd tests/apps/verify-${{ inputs.framework }} +# briefcase create windows app +# briefcase build windows app +# briefcase package windows app --adhoc-sign +# +# - name: Build Windows Visual Studio project +# if: > +# startsWith(inputs.runner-os, 'Windows') +# && contains(fromJSON('["", "Windows"]'), inputs.target-platform) +# && contains(fromJSON('["", "VisualStudio"]'), inputs.target-format) +# run: | +# unset WIX # force Briefcase to install and use its own version of WiX +# +# cd tests/apps/verify-${{ inputs.framework }} +# briefcase create windows VisualStudio +# briefcase build windows VisualStudio +# briefcase package windows VisualStudio --adhoc-sign - name: Build Linux System project (Ubuntu, local) if: > @@ -208,106 +209,129 @@ jobs: briefcase build linux system briefcase package linux system --adhoc-sign - - name: Build Linux System project (Debian, Dockerized) + - name: Build Linux System project (Ubuntu, aarch64) if: > startsWith(inputs.runner-os, 'ubuntu') && contains(fromJSON('["", "Linux"]'), inputs.target-platform) && contains(fromJSON('["", "system"]'), inputs.target-format) - run: | - cd tests/apps/verify-${{ inputs.framework }} - briefcase create linux system --target debian:bullseye - briefcase build linux system --target debian:bullseye - briefcase package linux system --target debian:bullseye --adhoc-sign - - - name: Build Linux System project (RPM, Dockerized) - # fedora:37 ships with Python 3.11 and PySide2 cannot be installed - if: > - startsWith(inputs.runner-os, 'ubuntu') - && !contains(fromJSON('["PySide2"]'), inputs.framework) - && contains(fromJSON('["", "Linux"]'), inputs.target-platform) - && contains(fromJSON('["", "system"]'), inputs.target-format) - run: | - cd tests/apps/verify-${{ inputs.framework }} - briefcase create linux system --target fedora:37 - briefcase build linux system --target fedora:37 - briefcase package linux system --target fedora:37 --adhoc-sign - - - name: Build Linux System project (Arch, Dockerized) - # arch started shipping Python 3.11 on 3 may 2023 and PySide2 cannot be installed - if: > - startsWith(inputs.runner-os, 'ubuntu') - && !contains(fromJSON('["PySide2"]'), inputs.framework) - && contains(fromJSON('["", "Linux"]'), inputs.target-platform) - && contains(fromJSON('["", "system"]'), inputs.target-format) - run: | - cd tests/apps/verify-${{ inputs.framework }} - briefcase create linux system --target archlinux:latest - briefcase build linux system --target archlinux:latest - briefcase package linux system --target archlinux:latest --adhoc-sign - - - name: Build AppImage project - if: > - startsWith(inputs.runner-os, 'ubuntu') - && contains(fromJSON('["", "Linux"]'), inputs.target-platform) - && contains(fromJSON('["", "AppImage"]'), inputs.target-format) - run: | - cd tests/apps/verify-${{ inputs.framework }} - briefcase create linux AppImage - briefcase build linux AppImage - briefcase package linux AppImage --adhoc-sign - - - name: Build Flatpak project - if: > - startsWith(inputs.runner-os, 'ubuntu') - && contains(fromJSON('["", "Linux"]'), inputs.target-platform) - && contains(fromJSON('["", "Flatpak"]'), inputs.target-format) - && startsWith(inputs.framework, 'toga') - run: | - sudo apt-get update -y - sudo apt-get install -y flatpak flatpak-builder - - cd tests/apps/verify-${{ inputs.framework }} - briefcase create linux flatpak - briefcase build linux flatpak - briefcase package linux flatpak --adhoc-sign - - - name: Build Android App - if: > - contains(fromJSON('["", "Android"]'), inputs.target-platform) - && contains(fromJSON('["", "Gradle"]'), inputs.target-format) - && startsWith(inputs.framework, 'toga') - run: | - cd tests/apps/verify-${{ inputs.framework }} - briefcase create android gradle - briefcase build android gradle - briefcase package android gradle --adhoc-sign - - - name: Build iOS App - if: > - startsWith(inputs.runner-os, 'macOS') - && contains(fromJSON('["", "iOS"]'), inputs.target-platform) - && contains(fromJSON('["", "Xcode"]'), inputs.target-format) - && startsWith(inputs.framework, 'toga') - run: | - cd tests/apps/verify-${{ inputs.framework }} - briefcase create iOS xcode - briefcase build iOS xcode - briefcase package iOS xcode --adhoc-sign - - - name: Build Web App - if: > - contains(fromJSON('["", "web"]'), inputs.target-platform) - && contains(fromJSON('["", "static"]'), inputs.target-format) - && startsWith(inputs.framework, 'toga') - run: | - cd tests/apps/verify-${{ inputs.framework }} - briefcase create web static - briefcase build web static - briefcase package web static - - - name: Upload failure logs - uses: actions/upload-artifact@v3.1.2 - if: failure() + uses: uraimo/run-on-arch-action@v2 with: - name: build-failure-logs-${{ inputs.framework }}-${{ inputs.python-version }}-${{ inputs.target-platform }}-${{ inputs.target-format }} - path: tests/apps/verify-${{ inputs.framework }}/logs/* + arch: "aarch64" + distro: "ubuntu22.04" + githubToken: ${{ github.token }} + dockerRunArgs: > + --workdir "/tests/apps/verify-${{ inputs.framework }}" + --volume "${PWD}/tests/apps/verify-${{ inputs.framework }}:/tests/apps/verify-${{ inputs.framework }}" + shell: /bin/bash + install: > + apt update && + apt install -y python3-dev python3-pip libcairo2-dev libgirepository1.0-dev && + python3 -m pip install git+${{ steps.briefcase.outputs.installed-repo }}@${{ steps.briefcase.outputs.installed-version }} + run: | + briefcase create linux system + briefcase build linux system + briefcase package linux system --adhoc-sign + +# - name: Build Linux System project (Debian, Dockerized) +# if: > +# startsWith(inputs.runner-os, 'ubuntu') +# && contains(fromJSON('["", "Linux"]'), inputs.target-platform) +# && contains(fromJSON('["", "system"]'), inputs.target-format) +# run: | +# cd tests/apps/verify-${{ inputs.framework }} +# briefcase create linux system --target debian:bullseye +# briefcase build linux system --target debian:bullseye +# briefcase package linux system --target debian:bullseye --adhoc-sign +# +# - name: Build Linux System project (RPM, Dockerized) +# # fedora:37 ships with Python 3.11 and PySide2 cannot be installed +# if: > +# startsWith(inputs.runner-os, 'ubuntu') +# && !contains(fromJSON('["PySide2"]'), inputs.framework) +# && contains(fromJSON('["", "Linux"]'), inputs.target-platform) +# && contains(fromJSON('["", "system"]'), inputs.target-format) +# run: | +# cd tests/apps/verify-${{ inputs.framework }} +# briefcase create linux system --target fedora:37 +# briefcase build linux system --target fedora:37 +# briefcase package linux system --target fedora:37 --adhoc-sign +# +# - name: Build Linux System project (Arch, Dockerized) +# # arch started shipping Python 3.11 on 3 may 2023 and PySide2 cannot be installed +# if: > +# startsWith(inputs.runner-os, 'ubuntu') +# && !contains(fromJSON('["PySide2"]'), inputs.framework) +# && contains(fromJSON('["", "Linux"]'), inputs.target-platform) +# && contains(fromJSON('["", "system"]'), inputs.target-format) +# run: | +# cd tests/apps/verify-${{ inputs.framework }} +# briefcase create linux system --target archlinux:latest +# briefcase build linux system --target archlinux:latest +# briefcase package linux system --target archlinux:latest --adhoc-sign +# +# - name: Build AppImage project +# if: > +# startsWith(inputs.runner-os, 'ubuntu') +# && contains(fromJSON('["", "Linux"]'), inputs.target-platform) +# && contains(fromJSON('["", "AppImage"]'), inputs.target-format) +# run: | +# cd tests/apps/verify-${{ inputs.framework }} +# briefcase create linux AppImage +# briefcase build linux AppImage +# briefcase package linux AppImage --adhoc-sign +# +# - name: Build Flatpak project +# if: > +# startsWith(inputs.runner-os, 'ubuntu') +# && contains(fromJSON('["", "Linux"]'), inputs.target-platform) +# && contains(fromJSON('["", "Flatpak"]'), inputs.target-format) +# && startsWith(inputs.framework, 'toga') +# run: | +# sudo apt-get update -y +# sudo apt-get install -y flatpak flatpak-builder +# +# cd tests/apps/verify-${{ inputs.framework }} +# briefcase create linux flatpak +# briefcase build linux flatpak +# briefcase package linux flatpak --adhoc-sign +# +# - name: Build Android App +# if: > +# contains(fromJSON('["", "Android"]'), inputs.target-platform) +# && contains(fromJSON('["", "Gradle"]'), inputs.target-format) +# && startsWith(inputs.framework, 'toga') +# run: | +# cd tests/apps/verify-${{ inputs.framework }} +# briefcase create android gradle +# briefcase build android gradle +# briefcase package android gradle --adhoc-sign +# +# - name: Build iOS App +# if: > +# startsWith(inputs.runner-os, 'macOS') +# && contains(fromJSON('["", "iOS"]'), inputs.target-platform) +# && contains(fromJSON('["", "Xcode"]'), inputs.target-format) +# && startsWith(inputs.framework, 'toga') +# run: | +# cd tests/apps/verify-${{ inputs.framework }} +# briefcase create iOS xcode +# briefcase build iOS xcode +# briefcase package iOS xcode --adhoc-sign +# +# - name: Build Web App +# if: > +# contains(fromJSON('["", "web"]'), inputs.target-platform) +# && contains(fromJSON('["", "static"]'), inputs.target-format) +# && startsWith(inputs.framework, 'toga') +# run: | +# cd tests/apps/verify-${{ inputs.framework }} +# briefcase create web static +# briefcase build web static +# briefcase package web static +# +# - name: Upload failure logs +# uses: actions/upload-artifact@v3.1.2 +# if: failure() +# with: +# name: build-failure-logs-${{ inputs.framework }}-${{ inputs.python-version }}-${{ inputs.target-platform }}-${{ inputs.target-format }} +# path: tests/apps/verify-${{ inputs.framework }}/logs/* diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 23ad85d7..839022d1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,173 +24,173 @@ jobs: with: pre-commit-source: "pre-commit" - test-docs-build-verify: - name: Test Verify Docs Build - needs: pre-commit - # inheriting secrets does not work for forked repos - if: ${{ github.event.pull_request.head.repo.owner.login == 'beeware' }} - uses: ./.github/workflows/docs-build-verify.yml - secrets: inherit - with: - project-name: ${{ matrix.name }} - project-version: ${{ matrix.version }} - strategy: - matrix: - name: [ "briefcase", "toga" ] - include: - - name: "briefcase" - version: "v0.3.13" - - name: "toga" - version: "v0.3.1" - - test-install-briefcase: - name: Test Install Briefcase - needs: pre-commit - runs-on: ubuntu-latest - timeout-minutes: 30 - strategy: - fail-fast: false - matrix: - test-case: - - "v0.3.12" - - "main" - - "PR Repo & Ref" - - "PR Repo & Ref (irregular)" - - "PR Ref" - - "refs/tags/v0.3.11" - - "refs/tags/v40.0.5" - - "refs/heads/v0.3.10" - - "refs/heads/v40.0.5" - - "refs/pull/v0.3.9" - - "refs/pull/v40.0.5" - include: - # Test override logic - - test-case: "v0.3.12" - version: "v0.3.12" - expected: "v0.3.12" - - test-case: "main" - version: "main" - expected: "main" - # Test PR body override - - test-case: "PR Repo & Ref" - testing-pr-body: "sadf asdf BRIEFCASE_REPO: https://github.com/freakboy3742/briefcase.git xcvbwer BRIEFCASE_REF: 3470d95 xczvb" - expected: "3470d95" - - test-case: "PR Repo & Ref (irregular)" - testing-pr-body: "sadf asdf BrIeFcAsE__REpo: https://github.com/freakboy3742/briefcase.git xcvbwer BRIEFcaseREF:3470d95 xczvb" - expected: "3470d95" - - test-case: "PR Ref" - testing-pr-body: "sadf asdf BRIEFcaseREF: v0.3.12" - expected: "v0.3.12" - # Test version derivation for Releases - - test-case: "refs/tags/v0.3.11" - testing-trigger-ref: "refs/tags/v0.3.11" - testing-ref-name: "v0.3.11" - expected: "v0.3.11" - - test-case: "refs/tags/v40.0.5" - testing-trigger-ref: "refs/tags/v40.0.5" - testing-ref-name: "v40.0.5" - expected: "main" - - test-case: "refs/heads/v0.3.10" - testing-trigger-ref: "refs/heads/v0.3.10" - testing-ref-name: "v0.3.10" - expected: "v0.3.10" - - test-case: "refs/heads/v40.0.5" - testing-trigger-ref: "refs/heads/v40.0.5" - testing-ref-name: "v40.0.5" - expected: "main" - # Test version derivation for PRs - - test-case: "refs/pull/v0.3.9" - testing-trigger-ref: "refs/pull/18/merge" - testing-pr-ref: "refs/heads/v0.3.9" - expected: "v0.3.9" - - test-case: "refs/pull/v0.3.9" - testing-trigger-ref: "refs/pull/20/merge" - testing-pr-ref: "v0.3.9" - expected: "v0.3.9" - - test-case: "refs/pull/v40.0.5" - testing-trigger-ref: "refs/pull/25/merge" - testing-pr-ref: "v40.0.5" - expected: "main" - steps: - - name: Checkout .github repo - uses: actions/checkout@v3 - - - name: Set up Python - uses: actions/setup-python@v4.7.0 - with: - python-version: "3.X" - - - name: Install Briefcase - id: briefcase - uses: ./.github/actions/install-briefcase - with: - briefcase-override-version: ${{ matrix.version }} - testing-pr-body: ${{ matrix.testing-pr-body }} - testing-trigger-ref: ${{ matrix.testing-trigger-ref }} - testing-pr-ref: ${{ matrix.testing-pr-ref }} - testing-ref-name: ${{ matrix.testing-ref-name }} - - - name: Test Briefcase @ ${{ matrix.test-case }} - run: | - if [[ "${{ matrix.expected }}" != "${{ steps.briefcase.outputs.installed-version }}" ]]; then - echo "installed-version: ${{ steps.briefcase.outputs.installed-version }}" - echo "Found Briefcase version v$(briefcase -V)" - echo "Expected Briefcase version ${{ matrix.expected }}" - exit 1 - fi - - test-install-win-store-python: - name: Test Win Store Python Installation - needs: pre-commit - runs-on: windows-latest - timeout-minutes: 30 - strategy: - matrix: - python-version: [ "3.8", "3.9", "3.10", "3.11" ] - steps: - - uses: actions/checkout@v3 - - - name: Install Windows Store Python - uses: ./.github/actions/install-win-store-python - with: - python-version: ${{ matrix.python-version }} - - - name: Test Windows Store Python Install - shell: powershell - run: | - $PythonExeSubDir = "\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.${{ matrix.python-version }}_qbz5n2kfra8p0\python.exe" - $ExpectedPythonPath = Join-Path "$env:LOCALAPPDATA" "$PythonExeSubDir" - if ( "$((Get-Command python).Path)" -ne "$ExpectedPythonPath" ) { - echo "Python is at $((Get-Command python).Path)" - echo "Python was expected at $ExpectedPythonPath" - exit 1 - } - if ( "$(python -V)" -cnotlike "Python ${{ matrix.python-version }}*" ) { - echo "Found $(python -V)" - echo "Expected Python ${{ matrix.python-version }}" - exit 1 - } - - test-pre-commit-run: - name: Test Pre-commit - needs: pre-commit - uses: ./.github/workflows/pre-commit-run.yml - with: - repository: beeware/${{ matrix.repo }} - pre-commit-source: ${{ matrix.pre-commit-source }} - strategy: - fail-fast: false - matrix: - repo: [ "briefcase", "gbulb", "Python-support-testbed", "rubicon-objc", "toga" ] - include: - - pre-commit-source: ".[dev]" - - repo: gbulb - pre-commit-source: "pre-commit" - - repo: Python-support-testbed - pre-commit-source: "pre-commit" - - repo: toga - pre-commit-source: "./core[dev]" - +# test-docs-build-verify: +# name: Test Verify Docs Build +# needs: pre-commit +# # inheriting secrets does not work for forked repos +# if: ${{ github.event.pull_request.head.repo.owner.login == 'beeware' }} +# uses: ./.github/workflows/docs-build-verify.yml +# secrets: inherit +# with: +# project-name: ${{ matrix.name }} +# project-version: ${{ matrix.version }} +# strategy: +# matrix: +# name: [ "briefcase", "toga" ] +# include: +# - name: "briefcase" +# version: "v0.3.13" +# - name: "toga" +# version: "v0.3.1" +# +# test-install-briefcase: +# name: Test Install Briefcase +# needs: pre-commit +# runs-on: ubuntu-latest +# timeout-minutes: 30 +# strategy: +# fail-fast: false +# matrix: +# test-case: +# - "v0.3.12" +# - "main" +# - "PR Repo & Ref" +# - "PR Repo & Ref (irregular)" +# - "PR Ref" +# - "refs/tags/v0.3.11" +# - "refs/tags/v40.0.5" +# - "refs/heads/v0.3.10" +# - "refs/heads/v40.0.5" +# - "refs/pull/v0.3.9" +# - "refs/pull/v40.0.5" +# include: +# # Test override logic +# - test-case: "v0.3.12" +# version: "v0.3.12" +# expected: "v0.3.12" +# - test-case: "main" +# version: "main" +# expected: "main" +# # Test PR body override +# - test-case: "PR Repo & Ref" +# testing-pr-body: "sadf asdf BRIEFCASE_REPO: https://github.com/freakboy3742/briefcase.git xcvbwer BRIEFCASE_REF: 3470d95 xczvb" +# expected: "3470d95" +# - test-case: "PR Repo & Ref (irregular)" +# testing-pr-body: "sadf asdf BrIeFcAsE__REpo: https://github.com/freakboy3742/briefcase.git xcvbwer BRIEFcaseREF:3470d95 xczvb" +# expected: "3470d95" +# - test-case: "PR Ref" +# testing-pr-body: "sadf asdf BRIEFcaseREF: v0.3.12" +# expected: "v0.3.12" +# # Test version derivation for Releases +# - test-case: "refs/tags/v0.3.11" +# testing-trigger-ref: "refs/tags/v0.3.11" +# testing-ref-name: "v0.3.11" +# expected: "v0.3.11" +# - test-case: "refs/tags/v40.0.5" +# testing-trigger-ref: "refs/tags/v40.0.5" +# testing-ref-name: "v40.0.5" +# expected: "main" +# - test-case: "refs/heads/v0.3.10" +# testing-trigger-ref: "refs/heads/v0.3.10" +# testing-ref-name: "v0.3.10" +# expected: "v0.3.10" +# - test-case: "refs/heads/v40.0.5" +# testing-trigger-ref: "refs/heads/v40.0.5" +# testing-ref-name: "v40.0.5" +# expected: "main" +# # Test version derivation for PRs +# - test-case: "refs/pull/v0.3.9" +# testing-trigger-ref: "refs/pull/18/merge" +# testing-pr-ref: "refs/heads/v0.3.9" +# expected: "v0.3.9" +# - test-case: "refs/pull/v0.3.9" +# testing-trigger-ref: "refs/pull/20/merge" +# testing-pr-ref: "v0.3.9" +# expected: "v0.3.9" +# - test-case: "refs/pull/v40.0.5" +# testing-trigger-ref: "refs/pull/25/merge" +# testing-pr-ref: "v40.0.5" +# expected: "main" +# steps: +# - name: Checkout .github repo +# uses: actions/checkout@v3 +# +# - name: Set up Python +# uses: actions/setup-python@v4.7.0 +# with: +# python-version: "3.X" +# +# - name: Install Briefcase +# id: briefcase +# uses: ./.github/actions/install-briefcase +# with: +# briefcase-override-version: ${{ matrix.version }} +# testing-pr-body: ${{ matrix.testing-pr-body }} +# testing-trigger-ref: ${{ matrix.testing-trigger-ref }} +# testing-pr-ref: ${{ matrix.testing-pr-ref }} +# testing-ref-name: ${{ matrix.testing-ref-name }} +# +# - name: Test Briefcase @ ${{ matrix.test-case }} +# run: | +# if [[ "${{ matrix.expected }}" != "${{ steps.briefcase.outputs.installed-version }}" ]]; then +# echo "installed-version: ${{ steps.briefcase.outputs.installed-version }}" +# echo "Found Briefcase version v$(briefcase -V)" +# echo "Expected Briefcase version ${{ matrix.expected }}" +# exit 1 +# fi +# +# test-install-win-store-python: +# name: Test Win Store Python Installation +# needs: pre-commit +# runs-on: windows-latest +# timeout-minutes: 30 +# strategy: +# matrix: +# python-version: [ "3.8", "3.9", "3.10", "3.11" ] +# steps: +# - uses: actions/checkout@v3 +# +# - name: Install Windows Store Python +# uses: ./.github/actions/install-win-store-python +# with: +# python-version: ${{ matrix.python-version }} +# +# - name: Test Windows Store Python Install +# shell: powershell +# run: | +# $PythonExeSubDir = "\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.${{ matrix.python-version }}_qbz5n2kfra8p0\python.exe" +# $ExpectedPythonPath = Join-Path "$env:LOCALAPPDATA" "$PythonExeSubDir" +# if ( "$((Get-Command python).Path)" -ne "$ExpectedPythonPath" ) { +# echo "Python is at $((Get-Command python).Path)" +# echo "Python was expected at $ExpectedPythonPath" +# exit 1 +# } +# if ( "$(python -V)" -cnotlike "Python ${{ matrix.python-version }}*" ) { +# echo "Found $(python -V)" +# echo "Expected Python ${{ matrix.python-version }}" +# exit 1 +# } +# +# test-pre-commit-run: +# name: Test Pre-commit +# needs: pre-commit +# uses: ./.github/workflows/pre-commit-run.yml +# with: +# repository: beeware/${{ matrix.repo }} +# pre-commit-source: ${{ matrix.pre-commit-source }} +# strategy: +# fail-fast: false +# matrix: +# repo: [ "briefcase", "gbulb", "Python-support-testbed", "rubicon-objc", "toga" ] +# include: +# - pre-commit-source: ".[dev]" +# - repo: gbulb +# pre-commit-source: "pre-commit" +# - repo: Python-support-testbed +# pre-commit-source: "pre-commit" +# - repo: toga +# pre-commit-source: "./core[dev]" +# test-package-python: name: Test Python Package Create needs: pre-commit @@ -230,140 +230,140 @@ jobs: framework: [ "toga", "ppb" ] runner-os: [ "macos-latest", "windows-latest", "ubuntu-latest" ] - test-verify-apps-briefcase-template: - name: Test Briefcase Template Verify Apps - needs: pre-commit - uses: ./.github/workflows/app-build-verify.yml - with: - python-version: "3.9" - repository: beeware/briefcase-template - briefcase-template-source: "../../" - runner-os: ${{ matrix.runner-os }} - framework: ${{ matrix.framework }} - strategy: - fail-fast: false - matrix: - framework: [ "toga", "ppb" ] - runner-os: [ "macos-latest", "windows-latest", "ubuntu-latest" ] - - test-verify-apps-android-templates: - name: Test Verify Android App - needs: pre-commit - uses: ./.github/workflows/app-build-verify.yml - with: - python-version: "3.9" - repository: beeware/briefcase-android-gradle-template - runner-os: ${{ matrix.runner-os }} - target-platform: android - target-format: gradle - framework: toga - strategy: - fail-fast: false - matrix: - runner-os: [ "macos-latest", "windows-latest", "ubuntu-latest" ] - - test-verify-apps-iOS-templates: - name: Test Verify iOS App - needs: pre-commit - uses: ./.github/workflows/app-build-verify.yml - with: - python-version: "3.9" - repository: beeware/briefcase-iOS-xcode-template - runner-os: macos-latest - target-platform: iOS - target-format: xcode - framework: toga - - test-verify-apps-linux-system-templates: - name: Test Verify Linux System App - needs: pre-commit - uses: ./.github/workflows/app-build-verify.yml - with: - # This *must* be the version of Python that is the system Python on ubuntu-22.04. - # Otherwise native system package builds won't be included. - python-version: "3.10" - repository: beeware/briefcase-linux-system-template - runner-os: ubuntu-22.04 - target-platform: linux - target-format: system - framework: ${{ matrix.framework }} - strategy: - fail-fast: false - matrix: - framework: [ "toga", "ppb", "pyside2" ] - - test-verify-apps-appimage-templates: - name: Test Verify AppImage App - needs: pre-commit - uses: ./.github/workflows/app-build-verify.yml - with: - python-version: "3.9" - repository: beeware/briefcase-linux-appimage-template - runner-os: ubuntu-latest - target-platform: linux - target-format: appimage - framework: ${{ matrix.framework }} - strategy: - fail-fast: false - matrix: - framework: [ "toga", "ppb" ] - - test-verify-apps-flatpak-templates: - name: Test Verify Flatpak App - needs: pre-commit - uses: ./.github/workflows/app-build-verify.yml - with: - python-version: "3.9" - repository: beeware/briefcase-linux-flatpak-template - runner-os: ubuntu-latest - target-platform: linux - target-format: flatpak - framework: toga - - test-verify-apps-macOS-templates: - name: Test Verify macOS App - needs: pre-commit - uses: ./.github/workflows/app-build-verify.yml - with: - python-version: "3.9" - repository: beeware/briefcase-macos-${{ matrix.format }}-template - runner-os: macos-latest - target-platform: macOS - target-format: ${{ matrix.format }} - framework: ${{ matrix.framework }} - strategy: - fail-fast: false - matrix: - format: [ "app", "Xcode" ] - framework: [ "toga", "ppb" ] - - test-verify-apps-web-templates: - name: Test Verify Web App - needs: pre-commit - uses: ./.github/workflows/app-build-verify.yml - with: - python-version: "3.9" - repository: beeware/briefcase-web-static-template - runner-os: ubuntu-latest - target-platform: web - target-format: static - framework: toga - - test-verify-apps-windows-templates: - name: Test Verify Windows App - needs: pre-commit - uses: ./.github/workflows/app-build-verify.yml - with: - python-version: "3.9" - python-source: ${{ matrix.python-source }} - repository: beeware/briefcase-windows-${{ matrix.format }}-template - runner-os: windows-latest - target-platform: windows - target-format: ${{ matrix.format }} - framework: ${{ matrix.framework }} - strategy: - fail-fast: false - matrix: - format: [ "app", "VisualStudio" ] - framework: [ "toga", "ppb" ] - python-source: [ "github", "winstore" ] +# test-verify-apps-briefcase-template: +# name: Test Briefcase Template Verify Apps +# needs: pre-commit +# uses: ./.github/workflows/app-build-verify.yml +# with: +# python-version: "3.9" +# repository: beeware/briefcase-template +# briefcase-template-source: "../../" +# runner-os: ${{ matrix.runner-os }} +# framework: ${{ matrix.framework }} +# strategy: +# fail-fast: false +# matrix: +# framework: [ "toga", "ppb" ] +# runner-os: [ "macos-latest", "windows-latest", "ubuntu-latest" ] +# +# test-verify-apps-android-templates: +# name: Test Verify Android App +# needs: pre-commit +# uses: ./.github/workflows/app-build-verify.yml +# with: +# python-version: "3.9" +# repository: beeware/briefcase-android-gradle-template +# runner-os: ${{ matrix.runner-os }} +# target-platform: android +# target-format: gradle +# framework: toga +# strategy: +# fail-fast: false +# matrix: +# runner-os: [ "macos-latest", "windows-latest", "ubuntu-latest" ] +# +# test-verify-apps-iOS-templates: +# name: Test Verify iOS App +# needs: pre-commit +# uses: ./.github/workflows/app-build-verify.yml +# with: +# python-version: "3.9" +# repository: beeware/briefcase-iOS-xcode-template +# runner-os: macos-latest +# target-platform: iOS +# target-format: xcode +# framework: toga +# +# test-verify-apps-linux-system-templates: +# name: Test Verify Linux System App +# needs: pre-commit +# uses: ./.github/workflows/app-build-verify.yml +# with: +# # This *must* be the version of Python that is the system Python on ubuntu-22.04. +# # Otherwise native system package builds won't be included. +# python-version: "3.10" +# repository: beeware/briefcase-linux-system-template +# runner-os: ubuntu-22.04 +# target-platform: linux +# target-format: system +# framework: ${{ matrix.framework }} +# strategy: +# fail-fast: false +# matrix: +# framework: [ "toga", "ppb", "pyside2" ] +# +# test-verify-apps-appimage-templates: +# name: Test Verify AppImage App +# needs: pre-commit +# uses: ./.github/workflows/app-build-verify.yml +# with: +# python-version: "3.9" +# repository: beeware/briefcase-linux-appimage-template +# runner-os: ubuntu-latest +# target-platform: linux +# target-format: appimage +# framework: ${{ matrix.framework }} +# strategy: +# fail-fast: false +# matrix: +# framework: [ "toga", "ppb" ] +# +# test-verify-apps-flatpak-templates: +# name: Test Verify Flatpak App +# needs: pre-commit +# uses: ./.github/workflows/app-build-verify.yml +# with: +# python-version: "3.9" +# repository: beeware/briefcase-linux-flatpak-template +# runner-os: ubuntu-latest +# target-platform: linux +# target-format: flatpak +# framework: toga +# +# test-verify-apps-macOS-templates: +# name: Test Verify macOS App +# needs: pre-commit +# uses: ./.github/workflows/app-build-verify.yml +# with: +# python-version: "3.9" +# repository: beeware/briefcase-macos-${{ matrix.format }}-template +# runner-os: macos-latest +# target-platform: macOS +# target-format: ${{ matrix.format }} +# framework: ${{ matrix.framework }} +# strategy: +# fail-fast: false +# matrix: +# format: [ "app", "Xcode" ] +# framework: [ "toga", "ppb" ] +# +# test-verify-apps-web-templates: +# name: Test Verify Web App +# needs: pre-commit +# uses: ./.github/workflows/app-build-verify.yml +# with: +# python-version: "3.9" +# repository: beeware/briefcase-web-static-template +# runner-os: ubuntu-latest +# target-platform: web +# target-format: static +# framework: toga +# +# test-verify-apps-windows-templates: +# name: Test Verify Windows App +# needs: pre-commit +# uses: ./.github/workflows/app-build-verify.yml +# with: +# python-version: "3.9" +# python-source: ${{ matrix.python-source }} +# repository: beeware/briefcase-windows-${{ matrix.format }}-template +# runner-os: windows-latest +# target-platform: windows +# target-format: ${{ matrix.format }} +# framework: ${{ matrix.framework }} +# strategy: +# fail-fast: false +# matrix: +# format: [ "app", "VisualStudio" ] +# framework: [ "toga", "ppb" ] +# python-source: [ "github", "winstore" ]