Compare commits

...

17 Commits

Author SHA1 Message Date
1878f3bac6 feat(icon): use custom Liquid Glass icon for Emacs.app
Use EmacsLG1 icon from in all builds:
https://github.com/jimeh/emacs-liquid-glass-icons
2025-09-14 21:17:17 +01:00
fb2956c35c chore(deps): update build-emacs-for-macos to 0.6.62 2025-09-14 12:27:23 +01:00
97721f45df chore(readme): update formatting 2025-09-10 19:31:06 +01:00
4142f78ed1 chore(deps): update build-emacs-for-macos to 0.6.61 2025-08-13 01:43:28 +01:00
0bdcc26ff7 docs(readme): update Homebrew Cask section 2025-06-28 16:46:45 +01:00
f77bef8017 chore(deps): update build-emacs-for-macos to 0.6.60 2025-06-27 22:45:03 +01:00
2304c38620 chore(deps): update build-emacs-for-macos to 0.6.59 2025-06-27 15:37:56 +01:00
d8ad016739 Merge pull request #53 from jimeh/upgrade-nix-actions 2025-06-27 15:16:24 +01:00
b8192fb788 fix(release): dmg build step success check 2025-06-27 15:13:35 +01:00
51fba0905b chore(deps): upgarde nix GitHub Actions 2025-06-27 12:34:04 +01:00
f73c57be55 feat(builds): update build-emacs-for-macos to 0.6.58 and add build variant option 2025-06-27 12:23:16 +01:00
d66071efc4 chore(deps): update build-emacs-for-macos to 0.6.57 2024-12-08 14:08:16 +00:00
5f2c9eef19 chore(deps): update build-emacs-for-macos to 0.6.55 2024-12-03 00:20:33 +00:00
b381cba4fa fix(workflow/_prepare): fix typo in default ref logic 2024-12-02 19:54:16 +00:00
d40d900d61 refactor(workflows): simplify default builder_ref setting
Allow the default builder_ref to be set in the a single location, the
_prepare shared workflow. Other workflows essentially have a override
option, and no longer need explicit default values set.
2024-12-02 19:51:29 +00:00
d81f9a1229 fix(nightly): remove supurflous inputs from nightly-master workflow
They're not needed for manual runs, and they were actively causing
things to break when triggered by the schedule.
2024-12-02 19:37:33 +00:00
93ad41d01a chore(deps): update build-emacs-for-macos to 0.6.54 2024-12-01 12:41:17 +00:00
7 changed files with 92 additions and 87 deletions

View File

@@ -13,13 +13,17 @@ on:
type: string
builder_ref:
description: "Git ref to checkout of build-emacs-for-macos"
required: true
required: false
type: string
builder_args:
description: Custom arguments passed to build script
required: false
default: ""
type: string
build_variant:
description: "Optional build number used as version suffix"
required: false
type: string
test_build_name:
description: "Test build name"
required: false
@@ -65,6 +69,7 @@ jobs:
git_ref: ${{ inputs.git_ref }}
git_sha: ${{ inputs.git_sha }}
build_args: ${{ inputs.builder_args }}
build_variant: ${{ inputs.build_variant }}
test_build_name: ${{ inputs.test_build_name }}
test_release_type: ${{ inputs.test_release_type }}
secrets: inherit
@@ -104,6 +109,7 @@ jobs:
git_ref: ${{ inputs.git_ref }}
git_sha: ${{ inputs.git_sha }}
build_args: ${{ inputs.builder_args }}
build_variant: ${{ inputs.build_variant }}
test_build_name: ${{ inputs.test_build_name }}
test_release_type: ${{ inputs.test_release_type }}
secrets: inherit

View File

@@ -34,6 +34,10 @@ on:
description: Custom arguments passed to build script
type: string
required: false
build_variant:
description: "Optional build number used as version suffix"
type: string
required: false
test_build_name:
description: "Test build name"
type: string
@@ -66,8 +70,8 @@ jobs:
path: bin
- name: Ensure emacs-builder is executable
run: chmod +x bin/emacs-builder
- uses: nixbuild/nix-quick-install-action@v29
- uses: nix-community/cache-nix-action@v5
- uses: nixbuild/nix-quick-install-action@v32
- uses: nix-community/cache-nix-action@v6
with:
primary-key: nix-${{ runner.arch }}-${{ hashFiles('**/flake.*') }}
- name: Install dependencies
@@ -77,6 +81,11 @@ jobs:
if: inputs.test_build_name != ''
run: >-
echo "args=--test-build '${{ inputs.test_build_name }}' --test-release-type '${{ inputs.test_release_type }}'" >> "$GITHUB_OUTPUT"
- name: Prepare build variant args
id: build_variant_args
if: inputs.build_variant != ''
run: >-
echo "args=--build-variant ${{ inputs.build_variant }}" >> "$GITHUB_OUTPUT"
- name: Set git SHA override
id: emacs_sha
if: inputs.git_sha != ''
@@ -87,6 +96,7 @@ jobs:
nix develop --command
bin/emacs-builder -l debug plan --output build-plan.yml
--output-dir '${{ github.workspace }}/builds'
${{ steps.build_variant_args.outputs.args }}
${{ steps.test_plan_args.outputs.args }}
${{ steps.emacs_sha.outputs.sha }}
'${{ inputs.git_ref }}'
@@ -122,8 +132,8 @@ jobs:
repository: jimeh/build-emacs-for-macos
ref: ${{ inputs.builder_ref }}
path: builder
- uses: nixbuild/nix-quick-install-action@v29
- uses: nix-community/cache-nix-action@v5
- uses: nixbuild/nix-quick-install-action@v32
- uses: nix-community/cache-nix-action@v6
with:
primary-key: nix-${{ runner.arch }}-${{ hashFiles('**/flake.*') }}
- name: Download build-plan artifact
@@ -148,6 +158,9 @@ jobs:
--plan build-plan.yml
--native-full-aot
--no-self-sign
--icon-uri 'https://github.com/jimeh/emacs-liquid-glass-icons/releases/download/v1.0.1/EmacsLG1-Default.icns'
--tahoe-icon-uri 'https://github.com/jimeh/emacs-liquid-glass-icons/releases/download/v1.0.1/Assets.car'
--tahoe-icon-name EmacsLG1
${{ inputs.build_args }}
working-directory: builder
env:

View File

@@ -5,30 +5,41 @@ on:
inputs:
builder_ref:
description: Git ref to checkout of build-emacs-for-macos
required: true
required: false
type: string
default: ""
outputs:
builder_ref:
description: Git ref of build-emacs-for-macos at builder_ref
value: ${{ jobs.builder-sha.outputs.ref }}
builder_sha:
description: Git SHA of build-emacs-for-macos at builder_ref
description: Git commit SHA of build-emacs-for-macos at builder_ref
value: ${{ jobs.builder-sha.outputs.sha }}
jobs:
builder-sha:
runs-on: "macos-13"
outputs:
sha: ${{ steps.builder_sha.outputs.sha }}
ref: ${{ steps.ref.outputs.ref }}
sha: ${{ steps.sha.outputs.sha }}
steps:
- name: Default git ref check
id: ref
run: |
DEFAULT_BUILDER_REF="v0.6.63"
BUILDER_REF="${{ inputs.builder_ref }}"
echo "ref=${BUILDER_REF:-$DEFAULT_BUILDER_REF}" >> "$GITHUB_OUTPUT"
- name: Checkout build-emacs-for-macos repo
uses: actions/checkout@v4
with:
repository: jimeh/build-emacs-for-macos
ref: ${{ inputs.builder_ref }}
ref: ${{ steps.ref.outputs.ref }}
- name: Store builder Git SHA
id: builder_sha
id: sha
run: |
BUILDER_SHA="$(git rev-parse HEAD)"
echo "$BUILDER_SHA" > build-emacs-for-macos-git-sha.txt
echo "sha=$BUILDER_SHA" >> $GITHUB_OUTPUT
echo "sha=$BUILDER_SHA" >> "$GITHUB_OUTPUT"
echo "Builder ref ${{ inputs.builder_ref }} resolved to" \
"commit SHA: $BUILDER_SHA"
- name: Upload builder git SHA artifact
@@ -58,7 +69,7 @@ jobs:
uses: actions/checkout@v4
with:
repository: jimeh/build-emacs-for-macos
ref: ${{ inputs.builder_ref }}
ref: ${{ needs.builder-sha.outputs.ref }}
fetch-depth: 0
- name: Setup Go
if: steps.cache.outputs.cache-hit != 'true'

View File

@@ -49,11 +49,11 @@ jobs:
name: ${{ inputs.dmg_artifact }}
path: builds
- name: Publish disk images to a GitHub Release
if: steps.dmg.outputs.result != 'fail'
if: steps.dmg.outcome != 'failure'
run: >-
bin/emacs-builder -l debug release --plan build-plan.yml publish
$(find builds -name '*.dmg' -or -name '*.sha256')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: echo 'No DMG artifact available, was there a new commit to build?'
if: steps.dmg.outputs.result == 'fail'
if: steps.dmg.outcome == 'failure'

View File

@@ -11,9 +11,9 @@ on:
description: Override Emacs git commit SHA to build
required: false
builder_ref:
description: "Git ref to checkout of build-emacs-for-macos"
required: true
default: "v0.6.53"
description: "Override git ref to checkout of build-emacs-for-macos"
required: false
default: ""
builder_args:
description: Custom arguments passed to build script
required: false
@@ -26,6 +26,10 @@ on:
description: "prerelease or draft"
required: false
default: ""
build_variant:
description: "Optional build number used as version suffix"
required: false
type: string
x86_64:
description: "Build x86_64 version of Emacs"
required: false
@@ -46,6 +50,7 @@ jobs:
git_sha: ${{ inputs.git_sha }}
builder_ref: ${{ inputs.builder_ref }}
builder_args: ${{ inputs.builder_args }}
build_variant: ${{ inputs.build_variant }}
test_build_name: ${{ inputs.test_build_name }}
test_release_type: ${{ inputs.test_release_type }}
x86_64: ${{ inputs.x86_64 }}

View File

@@ -8,20 +8,6 @@ on:
git_sha:
description: Override Emacs git commit SHA to build
required: false
builder_ref:
description: "Git ref to checkout of build-emacs-for-macos"
required: true
default: "v0.6.53"
x86_64:
description: "Build x86_64 version of Emacs"
required: false
default: true
type: boolean
arm64:
description: "Build arm64 version of Emacs"
required: false
default: true
type: boolean
jobs:
build:
@@ -30,7 +16,4 @@ jobs:
with:
git_ref: "master"
git_sha: ${{ inputs.git_sha }}
builder_ref: ${{ inputs.builder_ref }}
x86_64: ${{ inputs.x86_64 }}
arm64: ${{ inputs.arm64 }}
secrets: inherit

View File

@@ -1,27 +1,21 @@
<p align="center">
<img width="192px" src="https://github.com/emacs-mirror/emacs/raw/emacs-27.2/etc/images/icons/hicolor/scalable/apps/emacs.svg" alt="Logo">
</p>
<div align="center">
<h1 align="center">
Emacs Builds
</h1>
<img width="196px" src="https://raw.githubusercontent.com/jimeh/emacs-liquid-glass-icons/main/Icons/Exports/EmacsLG1-Default.iconset/icon_512x512.png" alt="Logo">
<p align="center">
<a href="https://github.com/jimeh/emacs-builds/releases/latest"><img alt="GitHub release (stable)" src="https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Fhomebrew-emacs-builds%2Fmeta%2FCasks%2Femacs-app%2Fshield.json"></a>
<a href="https://github.com/jimeh/emacs-builds/releases?q=pretest&expanded=true"><img alt="GitHub release (pretest)" src="https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Fhomebrew-emacs-builds%2Fmeta%2FCasks%2Femacs-app-pretest%2Fshield.json"></a>
<a href="https://github.com/jimeh/emacs-builds/releases?q=master&expanded=true"><img alt="GitHub release (nightly)" src="https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Fhomebrew-emacs-builds%2Fmeta%2FCasks%2Femacs-app-nightly%2Fshield.json"></a>
<a href="https://github.com/jimeh/emacs-builds/releases?q=master&expanded=true"><img alt="GitHub release (monthly)" src="https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Fhomebrew-emacs-builds%2Fmeta%2FCasks%2Femacs-app-monthly%2Fshield.json"></a>
<a href="https://github.com/jimeh/emacs-builds/issues/7"><img alt="GitHub release (known good nightly)" src="https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Fhomebrew-emacs-builds%2Fmeta%2FCasks%2Femacs-app-good%2Fshield.json"></a>
<a href="https://github.com/jimeh/emacs-builds/issues"><img alt="GitHub issues" src="https://img.shields.io/github/issues-raw/jimeh/emacs-builds?style=flat&logo=github&logoColor=white"></a>
<a href="https://github.com/jimeh/emacs-builds/pulls"><img alt="GitHub pull requests" src="https://img.shields.io/github/issues-pr-raw/jimeh/emacs-builds?style=flat&logo=github&logoColor=white"></a>
<a href="https://github.com/jimeh/emacs-builds/releases"><img alt="GitHub all releases" src="https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Femacs-builds%2Fmeta%2Ftotal-downloads%2Fshield.json"></a>
</p>
# Emacs Builds
<p align="center">
<strong>
Self-contained Emacs.app builds for macOS, with native-compilation support.
</strong>
</p>
[![GitHub release (stable)](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Fhomebrew-emacs-builds%2Fmeta%2FCasks%2Femacs-app%2Fshield.json)](https://github.com/jimeh/emacs-builds/releases/latest)
[![GitHub release (pretest)](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Fhomebrew-emacs-builds%2Fmeta%2FCasks%2Femacs-app-pretest%2Fshield.json)](https://github.com/jimeh/emacs-builds/releases?q=pretest&expanded=true)
[![GitHub release (nightly)](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Fhomebrew-emacs-builds%2Fmeta%2FCasks%2Femacs-app-nightly%2Fshield.json)](https://github.com/jimeh/emacs-builds/releases?q=master&expanded=true)
[![GitHub release (monthly)](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Fhomebrew-emacs-builds%2Fmeta%2FCasks%2Femacs-app-monthly%2Fshield.json)](https://github.com/jimeh/emacs-builds/releases?q=master&expanded=true)
[![GitHub release (known good nightly)](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Fhomebrew-emacs-builds%2Fmeta%2FCasks%2Femacs-app-good%2Fshield.json)](https://github.com/jimeh/emacs-builds/issues/7)
[![GitHub issues](https://img.shields.io/github/issues-raw/jimeh/emacs-builds?style=flat&logo=github&logoColor=white)](https://github.com/jimeh/emacs-builds/issues)
[![GitHub pull requests](https://img.shields.io/github/issues-pr-raw/jimeh/emacs-builds?style=flat&logo=github&logoColor=white)](https://github.com/jimeh/emacs-builds/pulls)
[![GitHub all releases](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Femacs-builds%2Fmeta%2Ftotal-downloads%2Fshield.json)](https://github.com/jimeh/emacs-builds/releases)
**Self-contained Emacs.app builds for macOS, with native-compilation support.**
</div>
## Features
@@ -82,37 +76,32 @@ for at least a day or two without any obvious issues.
### Homebrew Cask
1. Install the
[`jimeh/emacs-builds`](https://github.com/jimeh/homebrew-emacs-builds)
Homebrew tap:
```
brew tap jimeh/emacs-builds
```
2. Install one of the available casks:
- `emacs-app` — Latest stable release of Emacs.
```
brew install --cask emacs-app
```
- `emacs-app-pretest` — Latest pretest build of Emacs.
```
brew install --cask emacs-app-pretest
```
- `emacs-app-nightly` — Build of Emacs from the `master` branch, updated
every night.
```
brew install --cask emacs-app-nightly
```
- `emacs-app-monthly` — Build of Emacs from the `master` branch, updated on
the 1st of each month. These includes native Apple Silicon support.
```
brew install --cask emacs-app-monthly
```
- `emacs-app-good` for the latest known good nightly build listed on [#7][7]:
```
brew install --cask emacs-app-good
```
The [`jimeh/emacs-builds`](https://github.com/jimeh/homebrew-emacs-builds)
Homebrew Tap provides the following casks:
[7]: https://github.com/jimeh/emacs-builds/issues/7
- `jimeh/emacs-builds/emacs-app` — Latest stable release of Emacs.
```bash
brew install --cask jimeh/emacs-builds/emacs-app
```
- `jimeh/emacs-builds/emacs-app-pretest` — Latest pretest build of Emacs.
```bash
brew install --cask jimeh/emacs-builds/emacs-app-pretest
```
- `jimeh/emacs-builds/emacs-app-nightly` — Build of Emacs from the `master`
branch, updated every night.
```bash
brew install --cask jimeh/emacs-builds/emacs-app-nightly
```
- `jimeh/emacs-builds/emacs-app-monthly` — Build of Emacs from the `master`
branch, updated on the 1st of each month.
```bash
brew install --cask jimeh/emacs-builds/emacs-app-monthly
```
- `jimeh/emacs-builds/emacs-app-good` for the latest known good nightly build
listed on [#7][7]:
```bash
brew install --cask jimeh/emacs-builds/emacs-app-good
```
## Apple Silicon
@@ -192,8 +181,6 @@ All builds also come with a SHA256 checksum file, which itself can be double
checked against the SHA256 checksum log output from the packaging step of the
GitHub Actions workflow run which produced the build.
[emacs-mirror/emacs]: https://github.com/emacs-mirror/emacs
## Issues / To-Do
Please see [Issues][] for details of things to come, or to report issues.