Skip to content

πŸ”¨ Use real revision, write brew formula before testing #19

πŸ”¨ Use real revision, write brew formula before testing

πŸ”¨ Use real revision, write brew formula before testing #19

Workflow file for this run

#
# .github/workflows/release.yml
#
---
name: release
on:
# The `push` event is used only for testing while making changes to this workflow.
# This will be detected by the `github.event.release.name` being empty which
# switches the logic into "dry run" mode.
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#push
push:
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#release
release:
types: [published]
jobs:
release:
runs-on: macos-14
defaults:
run:
# Prefixes all `run` commands with the following command to force them to run outside Rosetta.
shell: arch -arm64 bash --noprofile --norc -eo pipefail {0}
env:
DRY_RUN: true
# Dry run version pinned to real release for testing brew build system
MAS_VERSION: v1.8.7-beta.1
RELEASE_COMMIT: f8be3e9aaa6c78490277976f17041f2577f5dc21
steps:
# Logs event details and sets `DRY_RUN` env var
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
# https://docs.github.com/en/webhooks/webhook-events-and-payloads?actionType=published#release
- name: πŸ”ˆ Log release event
if: ${{ github.event.release.name != '' }}
run: |
echo "Triggered by a release publication event (wet run)"
echo "release.name: ${{ github.event.release.name }}"
echo "release.tag_name: ${{ github.event.release.tag_name }}"
echo "release.target_commitish: ${{ github.event.release.target_commitish }}"
echo "release.body: ${{ github.event.release.body }}"
echo "DRY_RUN=false" >>$GITHUB_ENV
echo "MAS_VERSION=${{ github.event.release.tag_name }}" >>${GITHUB_REF}
echo "RELEASE_COMMIT=${{ github.event.release.target_commitish }}" >>${GITHUB_REF}
- name: πŸ”ˆ Log environment variables
run: |
echo "DRY_RUN: ${DRY_RUN}"
echo "MAS_VERSION: ${MAS_VERSION}"
echo "RELEASE_COMMIT: ${RELEASE_COMMIT}"
- uses: actions/checkout@v4
with:
# A fetch-depth of 0 includes all history and tags for script/version
fetch-depth: 0
- name: πŸ‘’ Bootstrap
run: |
script/bootstrap
# Important to trigger a universal build first as package just works with
# the `mas` binary in finds in the build dir.
- name: πŸ—οΈ Build Universal
run: |
script/build --universal
- name: πŸ“¦ macOS Package
run: |
script/package
- name: πŸš€ Upload mas.pkg
uses: actions/upload-artifact@v3
if: ${{ env.DRY_RUN == 'false' }}
with:
if-no-files-found: error
name: mas.pkg
path: .build/mas.pkg
- name: 🍺 Update Homebrew mas formula
run: |
DRY_RUN=${{ env.DRY_RUN }} \
script/brew_formula_update ${{ env.MAS_VERSION }}
- name: 🍼 Homebrew Bottles for mas tap
run: |
script/bottle
- name: πŸš€ Upload Bottles
uses: actions/upload-artifact@v3
if: ${{ env.DRY_RUN == 'false' }}
with:
if-no-files-found: error
name: homebrew-bottles
path: |
.build/bottles/mas-*.bottle.tar.gz