--- name: Nightly (master) on: schedule: - cron: "0 23 1 * *" - cron: "0 23 2-31 * *" workflow_dispatch: inputs: git_sha: description: Override Emacs git commit SHA to build required: false arm64: description: "Build arm64 version of Emacs?" required: false default: false type: boolean jobs: prepare: name: Prepare uses: ./.github/workflows/_prepare.yml secrets: TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }} # ---------------------------------------------------------------------------- # Build x86_64 version of Emacs # ---------------------------------------------------------------------------- build_x86_64: name: Build (x86_64) uses: ./.github/workflows/_build.yml needs: [prepare] with: build_os: "macos-13" artifact_prefix: "x86_64-" git_ref: "master" git_sha: ${{ github.event.inputs.git_sha }} secrets: APPLE_DEVELOPER_CERTIFICATE_P12_BASE64: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_P12_BASE64 }} APPLE_DEVELOPER_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_PASSWORD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} AC_USERNAME: ${{ secrets.AC_USERNAME }} AC_PASSWORD: ${{ secrets.AC_PASSWORD }} AC_PROVIDER: ${{ secrets.AC_PROVIDER }} AC_SIGN_IDENTITY: ${{ secrets.AC_SIGN_IDENTITY }} TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }} release_x86_64: name: Release (x86_64) uses: ./.github/workflows/_release.yml # Depend on both build_x86_64 and build_arm64, but only run if build_x86_64 # was successful and a package was created. This ensure wait for all builds # to complete before running any release jobs. needs: [build_x86_64, build_arm64] if: | always() && needs.build_x86_64.result == 'success' && needs.build_x86_64.outputs.package_created && needs.build_arm64.result != 'failure' with: plan_artifact: x86_64-build-plan dmg_artifact: x86_64-dmg secrets: TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }} # ---------------------------------------------------------------------------- # Build arm64 version of Emacs # ---------------------------------------------------------------------------- build_arm64: name: Build (arm64) if: >- github.event.inputs.arm64 == 'true' || github.event.schedule == '0 23 1 * *' uses: ./.github/workflows/_build.yml needs: [prepare] with: build_os: "macos-13-xlarge" # Only macos-13-xlarge has arm64 support. artifact_prefix: "arm64-" git_ref: "master" git_sha: ${{ github.event.inputs.git_sha }} secrets: APPLE_DEVELOPER_CERTIFICATE_P12_BASE64: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_P12_BASE64 }} APPLE_DEVELOPER_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_PASSWORD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} AC_USERNAME: ${{ secrets.AC_USERNAME }} AC_PASSWORD: ${{ secrets.AC_PASSWORD }} AC_PROVIDER: ${{ secrets.AC_PROVIDER }} AC_SIGN_IDENTITY: ${{ secrets.AC_SIGN_IDENTITY }} TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }} release_arm64: name: Release (arm64) uses: ./.github/workflows/_release.yml # Depend on both build_arm64 and build_x86_64, but only run if build_arm64 # was successful and a package was created. This ensure wait for all builds # to complete before running any release jobs. needs: [build_arm64, build_x86_64] if: | always() && needs.build_arm64.result == 'success' && needs.build_arm64.outputs.package_created && needs.build_x86_64.result != 'failure' with: plan_artifact: arm64-build-plan dmg_artifact: arm64-dmg secrets: TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }} # ---------------------------------------------------------------------------- # Trigger update casks workflow in homebrew tap # ---------------------------------------------------------------------------- update_casks: name: Update Casks uses: ./.github/workflows/_update-casks.yml # Depend on both release jobs, but only run if either of them was # successful. This ensures we only run this job once all release jobs have # been completed. needs: [release_x86_64, release_arm64] if: >- always() && github.event.inputs.test_build_name == '' && contains(needs.*.result, 'success') && !contains(needs.*.result, 'failure') secrets: TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}