Skip to content

Commit

Permalink
Merge pull request #510 from mas-cli/gha/release-workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
phatblat authored Mar 31, 2024
2 parents 666e505 + 557b561 commit 08c6c98
Show file tree
Hide file tree
Showing 33 changed files with 999 additions and 428 deletions.
8 changes: 8 additions & 0 deletions .actrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
--action-offline-mode
--eventpath .github/event.json
--container-architecture linux/amd64
--log-prefix-job-id
--platform macos-14=-self-hosted
--pull=false
--reuse
--secret-file .secrets
1 change: 1 addition & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ indent_style = tab

# JSON files contain newlines inconsistently
[*.json]
indent_size = 2
insert_final_newline = ignore

# Makefiles always use tabs for indentation
Expand Down
1 change: 1 addition & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates
---
version: 2
updates:
- package-ecosystem: "github-actions"
Expand Down
12 changes: 12 additions & 0 deletions .github/event.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"inputs": {
"NAME": "Manual Workflow",
"SOME_VALUE": "ABC"
},
"release": {
"name": "v1.8.6-beta.1: macOS only test build",
"tag_name": "v1.8.7-beta.1",
"target_commitish": "f8be3e9aaa6c78490277976f17041f2577f5dc21",
"body": "This is a pre-release to facilitate testing for the following fix:\n\n - 🖥️ Only search, outdated and update macOS apps (#505, #496, #491, #336)"
}
}
11 changes: 6 additions & 5 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
---
changelog:
categories:
- title: '🚀 Features'
- title: "🚀 Features"
labels:
- '🆕 feature request'
- title: '🐛 Bug Fixes'
- "🆕 feature request"
- title: "🐛 Bug Fixes"
labels:
- '🐛 bug'
- "🐛 bug"
- title: Changes
labels:
- '*'
- "*"
53 changes: 0 additions & 53 deletions .github/workflows/build-test.yml

This file was deleted.

26 changes: 15 additions & 11 deletions .github/workflows/danger.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
name: Danger
#
# .github/workflows/danger.yml
#
# https://docs.github.com/en/actions/reference/environment-variables#default-environment-variables
---
name: danger
on:
pull_request:
branches: [ main ]
branches: [main]
jobs:
danger:
name: Danger
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Danger
# https://github.com/orgs/danger/packages/container/package/danger-swift
uses: docker://ghcr.io/danger/danger-swift:3.12.3
with:
args: --failOnErrors --no-publish-check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v4
- name: Danger
# https://github.com/orgs/danger/packages/container/package/danger-swift
uses: docker://ghcr.io/danger/danger-swift:3.18.0
with:
args: --failOnErrors --no-publish-check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35 changes: 35 additions & 0 deletions .github/workflows/pr-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#
# .github/workflows/pr-checks.yml
#
# https://docs.github.com/en/actions/reference/environment-variables#default-environment-variables
---
name: pr-checks
on:
pull_request:
branches: [main]
push:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-test:
runs-on: macos-14
defaults:
run:
# Prefixes all `run` commands with the following command to force them to run outside Rosetta.
# https://github.com/actions/runner/issues/805#issuecomment-942784948
# https://github.com/rolpdog/cffi-mirror/blob/release-1.15/.github/workflows/ci.yaml#L81-L141
# https://github.com/actions/virtual-environments/issues/2187#issuecomment-790507204
shell: arch -arm64 bash --noprofile --norc -eo pipefail {0}
steps:
- 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 -f
- name: Build
run: script/build
- name: Test
run: script/test
113 changes: 113 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
#
# .github/workflows/release.yml
#
---
name: release
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}
on:
release:
types: [published]
jobs:
start:
runs-on: macos-14
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
# This step will only run for a real '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 -e "release.body: \n${{ github.event.release.body }}"
echo "DRY_RUN=false" >>$GITHUB_ENV
echo "MAS_VERSION=${{ github.event.release.tag_name }}" >>${GITHUB_ENV}
echo "RELEASE_COMMIT=${{ github.event.release.target_commitish }}" >>${GITHUB_ENV}
- name: 🔈 Log environment variables
run: |
echo "DRY_RUN: ${DRY_RUN}"
echo "MAS_VERSION: ${MAS_VERSION}"
echo "RELEASE_COMMIT: ${RELEASE_COMMIT}"
pkg-installer:
runs-on: macos-14
needs: start
steps:
- 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 -f
# 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
if: ${{ env.DRY_RUN == 'false' }}
run: |
gh release upload ${MAS_VERSION} \
.build/mas.pkg
homebrew-core:
runs-on: macos-14
needs: start
steps:
- 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 -f
- name: 🍺 Update Homebrew mas formula
run: |
DRY_RUN=${{ env.DRY_RUN }} \
script/brew_core_update ${{ env.MAS_VERSION }}
homebrew-tap:
runs-on: macos-14
needs: [start, homebrew-core]
steps:
- 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 -f
- name: 🚰 Update mas tap formula
run: |
DRY_RUN=${{ env.DRY_RUN }} \
script/brew_tap_update ${{ env.MAS_VERSION }}
- name: 🍼 Homebrew Bottles for mas tap
run: |
script/bottle
- name: 🚀 Upload Bottles
if: ${{ env.DRY_RUN == 'false' }}
run: |
gh release upload ${MAS_VERSION} \
.build/bottles/mas-*.bottle.tar.gz
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,15 @@
.envrc
.fseventsd
.rubygems/
.secrets
.swiftpm/
Carthage/
DerivedData
Pods/
Temporary Items
bin/
build/
gha/
default.profraw
releases/
xcuserdata
Sources/MasKit/Package.swift
20 changes: 0 additions & 20 deletions .hound.yml

This file was deleted.

11 changes: 11 additions & 0 deletions .mise.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#
# .mise.toml
# https://mise.jdx.dev/configuration.html
#

[tools]
act = "0.2.60"
"npm:prettier" = "3.2.5"

[settings]
experimental = true
1 change: 1 addition & 0 deletions .periphery.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
---
retain_public: true
strict: true
8 changes: 3 additions & 5 deletions .swiftlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,10 @@
#
# https://github.com/realm/SwiftLint#configuration
#

---
disabled_rules:
- trailing_comma

- trailing_comma
excluded:
- docs

- docs
opening_brace:
allow_multiline_func: true
Loading

0 comments on commit 08c6c98

Please sign in to comment.