# On a version tag: macOS apps attached to its release. name: release on: push: tags: ["v*"] workflow_dispatch: permissions: contents: write jobs: macos: strategy: fail-fast: false matrix: include: - runner: macos-15 arch: arm64 - runner: macos-15-intel arch: x86_64 runs-on: ${{ matrix.runner }} timeout-minutes: 120 env: GH_TOKEN: ${{ github.token }} steps: - uses: actions/checkout@v4 - name: Engines run: | brew install zstd tag=engines-$(scripts/engines-key.sh) gh release download "$tag" --pattern "engines-macos-${{ matrix.arch }}.tar.zst" || { echo "::error::no $tag for ${{ matrix.arch }}; run the engines workflow first"; exit 1; } mkdir -p engines zstd -dc "engines-macos-${{ matrix.arch }}.tar.zst" | tar -C engines -xf - - name: Upstream sources and ElyMark's page run: | scripts/fetch-references.sh scripts/build-mark-content.sh - name: Tests that need no window run: | tests/scripts/types.sh tests/scripts/icons.sh python3 tests/scripts/comments.py - name: Packages run: packaging/macos/release.sh 1 - name: Attach to the release if: startsWith(github.ref, 'refs/tags/') run: | version=${GITHUB_REF_NAME} gh release view "$version" >/dev/null 2>&1 || gh release create "$version" --title "Ely Office $version" --notes "Built by release.yml." gh release upload "$version" dist/*.dmg --clobber if [ "${{ matrix.arch }}" = arm64 ]; then gh release upload "$version" dist/ElyOffice-*-source.tar.gz dist/ElyOffice-*-upstream-source.tar.gz --clobber fi