name: "Build and Package" on: workflow_dispatch: push: tags: - v* env: FORCE_COLOR: "1" defaults: run: shell: bash jobs: package: name: Build and Package runs-on: ${{ matrix.runs-on }} strategy: fail-fast: false matrix: target: [ "macOS" ] include: - target: "macOS" output-format: "app" runs-on: "macos-latest" steps: - name: Checkout uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v6 - name: Install Python 3.13 run: uv python install 3.13 - name: Setup Environment run: uv sync - name: Build App run: | ${{ matrix.briefcase-build-prefix }} \ uv run briefcase build \ ${{ matrix.platform || matrix.target }} \ ${{ matrix.output-format }} \ --test --no-input --log \ ${{ matrix.briefcase-args }} \ ${{ matrix.briefcase-build-args }} - name: Package App run: | ${{ matrix.briefcase-package-prefix }} \ uv run briefcase package \ ${{ matrix.platform || matrix.target }} \ ${{ matrix.output-format }} \ --update --adhoc-sign --no-input --log \ ${{ matrix.briefcase-args }} \ ${{ matrix.briefcase-package-args }} - name: Upload App uses: actions/upload-artifact@v4 with: name: App-${{ matrix.target }} path: dist if-no-files-found: error - name: Upload Log if: failure() uses: actions/upload-artifact@v4 with: name: Log-Failure-${{ matrix.target }} path: logs/* release: name: "Upload Release" runs-on: ubuntu-latest needs: - package steps: - name: Checkout uses: actions/checkout@v4 - name: Download macOS build uses: actions/download-artifact@v4 with: name: App-macOS path: dist/ - name: Display all files run: ls -R - name: Create Release uses: softprops/action-gh-release@v2 with: files: dist/* fail_on_unmatched_files: true