mirror of
https://github.com/jimeh/emacs-builds.git
synced 2026-02-19 11:56:40 +00:00
Compare commits
20 Commits
test-build
...
Emacs-29.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
c262274a3d
|
|||
|
ca7f04ce6a
|
|||
|
202f62454e
|
|||
|
99341c4f19
|
|||
|
b841bc77b9
|
|||
|
196270a3f4
|
|||
|
2062378299
|
|||
|
cc7bb92357
|
|||
|
1a36bde31e
|
|||
|
04d1bbeb71
|
|||
|
3e4d8b1833
|
|||
|
a292b242c4
|
|||
|
287df6914e
|
|||
|
d2cb4d5905
|
|||
|
6b4bd441a3
|
|||
|
6e1af1b83f
|
|||
|
81b0e4a784
|
|||
|
503023cd53
|
|||
|
a79110c550
|
|||
|
ff1b573f43
|
39
.github/workflows/_build.yml
vendored
39
.github/workflows/_build.yml
vendored
@@ -11,7 +11,13 @@ on:
|
|||||||
os:
|
os:
|
||||||
description: GitHub Actions runner OS
|
description: GitHub Actions runner OS
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: false
|
||||||
|
default: "macos-12"
|
||||||
|
build_os:
|
||||||
|
description: Target OS to build for
|
||||||
|
type: string
|
||||||
|
required: false
|
||||||
|
default: "macos-12"
|
||||||
git_ref:
|
git_ref:
|
||||||
description: Git ref to build
|
description: Git ref to build
|
||||||
type: string
|
type: string
|
||||||
@@ -58,6 +64,10 @@ on:
|
|||||||
TAP_REPO_TOKEN:
|
TAP_REPO_TOKEN:
|
||||||
description: Homebrew Tap Token
|
description: Homebrew Tap Token
|
||||||
required: true
|
required: true
|
||||||
|
outputs:
|
||||||
|
package_created:
|
||||||
|
description: "Whether or not a package was created"
|
||||||
|
value: ${{ jobs.package.result == 'success' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
prepare:
|
prepare:
|
||||||
@@ -88,16 +98,31 @@ jobs:
|
|||||||
echo "sha=--sha '${{ inputs.git_sha }}'" >> $GITHUB_OUTPUT
|
echo "sha=--sha '${{ inputs.git_sha }}'" >> $GITHUB_OUTPUT
|
||||||
plan:
|
plan:
|
||||||
needs: [prepare]
|
needs: [prepare]
|
||||||
runs-on: ${{ inputs.os }}
|
runs-on: ${{ inputs.build_os }}
|
||||||
outputs:
|
outputs:
|
||||||
check: ${{ steps.check.outputs.result }}
|
check: ${{ steps.check.outputs.result }}
|
||||||
steps:
|
steps:
|
||||||
|
- name: Checkout build-emacs-for-macos repo
|
||||||
|
if: ${{ inputs.os != inputs.build_os }}
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: jimeh/build-emacs-for-macos
|
||||||
|
ref: ${{ needs.prepare.outputs.builder_sha }}
|
||||||
|
- uses: actions/setup-go@v4
|
||||||
|
if: ${{ inputs.os != inputs.build_os }}
|
||||||
|
with:
|
||||||
|
go-version: "1.21"
|
||||||
|
- name: Build emacs-builder tool
|
||||||
|
if: ${{ inputs.os != inputs.build_os }}
|
||||||
|
run: make build
|
||||||
- name: Download pre-built emacs-builder artifact
|
- name: Download pre-built emacs-builder artifact
|
||||||
|
if: ${{ inputs.os == inputs.build_os }}
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: emacs-builder
|
name: emacs-builder
|
||||||
path: bin
|
path: bin
|
||||||
- name: Ensure emacs-builder is executable
|
- name: Ensure emacs-builder is executable
|
||||||
|
if: ${{ inputs.os == inputs.build_os }}
|
||||||
run: chmod +x bin/emacs-builder
|
run: chmod +x bin/emacs-builder
|
||||||
- name: Plan build
|
- name: Plan build
|
||||||
run: >-
|
run: >-
|
||||||
@@ -124,10 +149,10 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- run: echo 'Planned release already seems to exist.'
|
- run: echo 'Planned release already seems to exist.'
|
||||||
if: ${{ steps.check.outputs.result == 'fail' }}
|
if: ${{ steps.check.outputs.result == 'ok' }}
|
||||||
|
|
||||||
build:
|
build:
|
||||||
runs-on: ${{ inputs.os }}
|
runs-on: ${{ inputs.build_os }}
|
||||||
needs: [prepare, plan]
|
needs: [prepare, plan]
|
||||||
# Only run if check for existing release and asset failed.
|
# Only run if check for existing release and asset failed.
|
||||||
if: ${{ needs.plan.outputs.check == 'fail' }}
|
if: ${{ needs.plan.outputs.check == 'fail' }}
|
||||||
@@ -149,7 +174,7 @@ jobs:
|
|||||||
-ilname '*/Library/Frameworks/Python.framework/*'
|
-ilname '*/Library/Frameworks/Python.framework/*'
|
||||||
-delete
|
-delete
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: make bootstrap-ci
|
run: make bootstrap
|
||||||
working-directory: builder
|
working-directory: builder
|
||||||
- name: Download build-plan artifact
|
- name: Download build-plan artifact
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
@@ -162,6 +187,7 @@ jobs:
|
|||||||
--log-level debug
|
--log-level debug
|
||||||
--plan build-plan.yml
|
--plan build-plan.yml
|
||||||
--native-full-aot
|
--native-full-aot
|
||||||
|
--no-self-sign
|
||||||
${{ inputs.build_args }}
|
${{ inputs.build_args }}
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -180,7 +206,6 @@ jobs:
|
|||||||
package:
|
package:
|
||||||
runs-on: ${{ inputs.os }}
|
runs-on: ${{ inputs.os }}
|
||||||
needs: [prepare, plan, build]
|
needs: [prepare, plan, build]
|
||||||
# Only run if check for existing release and asset failed.
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/setup-python@v4
|
- uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
@@ -243,7 +268,7 @@ jobs:
|
|||||||
- name: Upload disk image artifacts
|
- name: Upload disk image artifacts
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: dmg
|
name: ${{ inputs.artifact_prefix }}dmg
|
||||||
path: |
|
path: |
|
||||||
builds/*.dmg
|
builds/*.dmg
|
||||||
builds/*.sha*
|
builds/*.sha*
|
||||||
|
|||||||
5
.github/workflows/_prepare.yml
vendored
5
.github/workflows/_prepare.yml
vendored
@@ -6,12 +6,13 @@ on:
|
|||||||
os:
|
os:
|
||||||
description: GitHub Actions runner OS
|
description: GitHub Actions runner OS
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: false
|
||||||
|
default: "macos-12"
|
||||||
builder_ref:
|
builder_ref:
|
||||||
description: Git ref to checkout of build-emacs-for-macos
|
description: Git ref to checkout of build-emacs-for-macos
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
default: "v0.6.43"
|
default: "v0.6.45"
|
||||||
secrets:
|
secrets:
|
||||||
TAP_REPO_TOKEN:
|
TAP_REPO_TOKEN:
|
||||||
description: Personal Access Token for Homebrew Tap repo
|
description: Personal Access Token for Homebrew Tap repo
|
||||||
|
|||||||
13
.github/workflows/_release.yml
vendored
13
.github/workflows/_release.yml
vendored
@@ -7,7 +7,8 @@ on:
|
|||||||
os:
|
os:
|
||||||
description: GitHub Actions runner OS
|
description: GitHub Actions runner OS
|
||||||
type: string
|
type: string
|
||||||
required: true
|
required: false
|
||||||
|
default: "macos-12"
|
||||||
plan_artifact:
|
plan_artifact:
|
||||||
description: Name of artifact containing a emacs-builder plan yaml file
|
description: Name of artifact containing a emacs-builder plan yaml file
|
||||||
type: string
|
type: string
|
||||||
@@ -20,6 +21,11 @@ on:
|
|||||||
description: "Test build name"
|
description: "Test build name"
|
||||||
type: string
|
type: string
|
||||||
required: false
|
required: false
|
||||||
|
update_casks:
|
||||||
|
description: "Update casks in homebrew tap?"
|
||||||
|
type: boolean
|
||||||
|
required: true
|
||||||
|
default: true
|
||||||
secrets:
|
secrets:
|
||||||
TAP_REPO_TOKEN:
|
TAP_REPO_TOKEN:
|
||||||
description: Personal Access Token for Homebrew Tap repo
|
description: Personal Access Token for Homebrew Tap repo
|
||||||
@@ -56,7 +62,10 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: Trigger update casks workflow in homebrew tap
|
- name: Trigger update casks workflow in homebrew tap
|
||||||
if: ${{ steps.dmg.outputs.result != 'fail' && inputs.test_build_name == '' }}
|
if: >-
|
||||||
|
steps.dmg.outputs.result != 'fail' &&
|
||||||
|
inputs.test_build_name == '' &&
|
||||||
|
inputs.update_casks
|
||||||
run: >-
|
run: >-
|
||||||
gh workflow run --repo jimeh/homebrew-emacs-builds update-casks.yml
|
gh workflow run --repo jimeh/homebrew-emacs-builds update-casks.yml
|
||||||
env:
|
env:
|
||||||
|
|||||||
81
.github/workflows/build.yml
vendored
81
.github/workflows/build.yml
vendored
@@ -19,9 +19,9 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
default: ""
|
default: ""
|
||||||
os:
|
os:
|
||||||
description: 'Runner OS ("macos-11", "macos-12", or "macos-latest")'
|
description: 'Runner OS ("macos-12", "macos-13", or "macos-latest")'
|
||||||
required: true
|
required: true
|
||||||
default: "macos-11"
|
default: "macos-12"
|
||||||
test_build_name:
|
test_build_name:
|
||||||
description: "Test build name"
|
description: "Test build name"
|
||||||
required: false
|
required: false
|
||||||
@@ -30,6 +30,16 @@ on:
|
|||||||
description: "prerelease or draft"
|
description: "prerelease or draft"
|
||||||
required: false
|
required: false
|
||||||
default: ""
|
default: ""
|
||||||
|
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: false
|
||||||
|
type: boolean
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
prepare:
|
prepare:
|
||||||
@@ -41,12 +51,19 @@ jobs:
|
|||||||
secrets:
|
secrets:
|
||||||
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
||||||
|
|
||||||
build:
|
# ----------------------------------------------------------------------------
|
||||||
name: Build
|
# Build x86_64 version of Emacs
|
||||||
needs: [prepare]
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
build_x86_64:
|
||||||
|
name: Build (x86_64)
|
||||||
|
if: ${{ github.event.inputs.x86_64 == 'true' }}
|
||||||
uses: ./.github/workflows/_build.yml
|
uses: ./.github/workflows/_build.yml
|
||||||
|
needs: [prepare]
|
||||||
with:
|
with:
|
||||||
os: ${{ github.event.inputs.os }}
|
os: ${{ github.event.inputs.os }}
|
||||||
|
build_os: "macos-12"
|
||||||
|
artifact_prefix: "x86_64-"
|
||||||
git_ref: ${{ github.event.inputs.git_ref }}
|
git_ref: ${{ github.event.inputs.git_ref }}
|
||||||
git_sha: ${{ github.event.inputs.git_sha }}
|
git_sha: ${{ github.event.inputs.git_sha }}
|
||||||
build_args: ${{ github.event.inputs.builder_args }}
|
build_args: ${{ github.event.inputs.builder_args }}
|
||||||
@@ -62,14 +79,58 @@ jobs:
|
|||||||
AC_SIGN_IDENTITY: ${{ secrets.AC_SIGN_IDENTITY }}
|
AC_SIGN_IDENTITY: ${{ secrets.AC_SIGN_IDENTITY }}
|
||||||
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
||||||
|
|
||||||
release:
|
release_x86_64:
|
||||||
name: Release
|
name: Release (x86_64)
|
||||||
needs: [build]
|
|
||||||
uses: ./.github/workflows/_release.yml
|
uses: ./.github/workflows/_release.yml
|
||||||
|
needs: [build_x86_64]
|
||||||
|
if: ${{ needs.build_x86_64.outputs.package_created }}
|
||||||
with:
|
with:
|
||||||
os: ${{ github.event.inputs.os }}
|
os: ${{ github.event.inputs.os }}
|
||||||
plan_artifact: build-plan
|
plan_artifact: x86_64-build-plan
|
||||||
dmg_artifact: dmg
|
dmg_artifact: x86_64-dmg
|
||||||
test_build_name: ${{ github.event.inputs.test_build_name }}
|
test_build_name: ${{ github.event.inputs.test_build_name }}
|
||||||
|
update_casks: true
|
||||||
|
secrets:
|
||||||
|
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Build arm64 version of Emacs
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
build_arm64:
|
||||||
|
name: Build (arm64)
|
||||||
|
if: ${{ github.event.inputs.arm64 == 'true' }}
|
||||||
|
uses: ./.github/workflows/_build.yml
|
||||||
|
needs: [prepare]
|
||||||
|
with:
|
||||||
|
os: ${{ github.event.inputs.os }}
|
||||||
|
build_os: "macos-13-xlarge" # Only macos-13-xlarge has arm64 support.
|
||||||
|
artifact_prefix: "arm64-"
|
||||||
|
git_ref: ${{ github.event.inputs.git_ref }}
|
||||||
|
git_sha: ${{ github.event.inputs.git_sha }}
|
||||||
|
build_args: ${{ github.event.inputs.builder_args }}
|
||||||
|
test_build_name: ${{ github.event.inputs.test_build_name }}
|
||||||
|
test_release_type: ${{ github.event.inputs.test_release_type }}
|
||||||
|
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
|
||||||
|
needs: [build_arm64]
|
||||||
|
if: ${{ needs.build_arm64.outputs.package_created }}
|
||||||
|
with:
|
||||||
|
os: ${{ github.event.inputs.os }}
|
||||||
|
plan_artifact: arm64-build-plan
|
||||||
|
dmg_artifact: arm64-dmg
|
||||||
|
test_build_name: ${{ github.event.inputs.test_build_name }}
|
||||||
|
update_casks: false
|
||||||
secrets:
|
secrets:
|
||||||
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
||||||
|
|||||||
46
.github/workflows/nightly-emacs-29.yml
vendored
46
.github/workflows/nightly-emacs-29.yml
vendored
@@ -1,46 +0,0 @@
|
|||||||
---
|
|
||||||
name: Nightly (emacs-29)
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: "0 23 * * *"
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
git_sha:
|
|
||||||
description: Override Emacs git commit SHA to build
|
|
||||||
required: false
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
prepare:
|
|
||||||
name: Prepare
|
|
||||||
uses: ./.github/workflows/_prepare.yml
|
|
||||||
secrets:
|
|
||||||
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
|
||||||
|
|
||||||
build:
|
|
||||||
name: Build
|
|
||||||
needs: [prepare]
|
|
||||||
uses: ./.github/workflows/_build.yml
|
|
||||||
with:
|
|
||||||
os: macos-11
|
|
||||||
git_ref: emacs-29
|
|
||||||
git_sha: ${{ github.event.inputs.git_sha }}
|
|
||||||
build_args: --native-comp
|
|
||||||
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:
|
|
||||||
name: Release
|
|
||||||
needs: [build]
|
|
||||||
uses: ./.github/workflows/_release.yml
|
|
||||||
with:
|
|
||||||
plan_artifact: build-plan
|
|
||||||
dmg_artifact: dmg
|
|
||||||
secrets:
|
|
||||||
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
|
||||||
75
.github/workflows/nightly-master.yml
vendored
75
.github/workflows/nightly-master.yml
vendored
@@ -2,31 +2,39 @@
|
|||||||
name: Nightly (master)
|
name: Nightly (master)
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: "0 23 * * *"
|
- cron: "0 23 1 * *"
|
||||||
|
- cron: "0 23 2-31 * *"
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
git_sha:
|
git_sha:
|
||||||
description: Override Emacs git commit SHA to build
|
description: Override Emacs git commit SHA to build
|
||||||
required: false
|
required: false
|
||||||
|
arm64:
|
||||||
|
description: "Build arm64 version of Emacs?"
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
prepare:
|
prepare:
|
||||||
name: Prepare
|
name: Prepare
|
||||||
uses: ./.github/workflows/_prepare.yml
|
uses: ./.github/workflows/_prepare.yml
|
||||||
with:
|
|
||||||
os: macos-11
|
|
||||||
secrets:
|
secrets:
|
||||||
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
||||||
|
|
||||||
build:
|
# ----------------------------------------------------------------------------
|
||||||
name: Build
|
# Build x86_64 version of Emacs
|
||||||
needs: [prepare]
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
build_x86_64:
|
||||||
|
name: Build (x86_64)
|
||||||
uses: ./.github/workflows/_build.yml
|
uses: ./.github/workflows/_build.yml
|
||||||
|
needs: [prepare]
|
||||||
with:
|
with:
|
||||||
os: macos-11
|
build_os: "macos-12"
|
||||||
git_ref: master
|
artifact_prefix: "x86_64-"
|
||||||
|
git_ref: "master"
|
||||||
git_sha: ${{ github.event.inputs.git_sha }}
|
git_sha: ${{ github.event.inputs.git_sha }}
|
||||||
build_args: --native-comp
|
|
||||||
secrets:
|
secrets:
|
||||||
APPLE_DEVELOPER_CERTIFICATE_P12_BASE64: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_P12_BASE64 }}
|
APPLE_DEVELOPER_CERTIFICATE_P12_BASE64: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_P12_BASE64 }}
|
||||||
APPLE_DEVELOPER_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_PASSWORD }}
|
APPLE_DEVELOPER_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_PASSWORD }}
|
||||||
@@ -37,13 +45,50 @@ jobs:
|
|||||||
AC_SIGN_IDENTITY: ${{ secrets.AC_SIGN_IDENTITY }}
|
AC_SIGN_IDENTITY: ${{ secrets.AC_SIGN_IDENTITY }}
|
||||||
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
||||||
|
|
||||||
release:
|
release_x86_64:
|
||||||
name: Release
|
name: Release (x86_64)
|
||||||
needs: [build]
|
|
||||||
uses: ./.github/workflows/_release.yml
|
uses: ./.github/workflows/_release.yml
|
||||||
|
needs: [build_x86_64]
|
||||||
|
if: ${{ needs.build_x86_64.outputs.package_created }}
|
||||||
with:
|
with:
|
||||||
os: macos-11
|
plan_artifact: x86_64-build-plan
|
||||||
plan_artifact: build-plan
|
dmg_artifact: x86_64-dmg
|
||||||
dmg_artifact: dmg
|
update_casks: true
|
||||||
|
secrets:
|
||||||
|
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Build arm64 version of Emacs
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
build_arm64:
|
||||||
|
name: Build (arm64)
|
||||||
|
if: github.event.inputs.arm64 || 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
|
||||||
|
needs: [build_arm64]
|
||||||
|
if: ${{ needs.build_arm64.outputs.package_created }}
|
||||||
|
with:
|
||||||
|
plan_artifact: arm64-build-plan
|
||||||
|
dmg_artifact: arm64-dmg
|
||||||
|
update_casks: false
|
||||||
secrets:
|
secrets:
|
||||||
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
||||||
|
|||||||
6
.github/workflows/update-metadata.yml
vendored
6
.github/workflows/update-metadata.yml
vendored
@@ -3,7 +3,7 @@ name: Update Metadata
|
|||||||
concurrency: jimeh/emacs-builds/update-metadata
|
concurrency: jimeh/emacs-builds/update-metadata
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: "0 0,12 * * *"
|
- cron: "0 0 * * *"
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -19,7 +19,9 @@ jobs:
|
|||||||
go-version: "1.21"
|
go-version: "1.21"
|
||||||
- name: update total downloads shield JSON
|
- name: update total downloads shield JSON
|
||||||
run: >-
|
run: >-
|
||||||
go run . badges downloads -o total-downloads/shield.json
|
go run . badges downloads
|
||||||
|
--output total-downloads/shield.json
|
||||||
|
--cache total-downloads/.cache.json
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ github.token }}
|
GITHUB_TOKEN: ${{ github.token }}
|
||||||
- name: commit and push changes to meta branch
|
- name: commit and push changes to meta branch
|
||||||
|
|||||||
68
README.md
68
README.md
@@ -10,7 +10,7 @@
|
|||||||
<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/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=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 (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=emacs-29&expanded=true"><img alt="GitHub release (nightly@emacs-29)" src="https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Fhomebrew-emacs-builds%2Fmeta%2FCasks%2Femacs-app-nightly-29%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/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/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/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>
|
||||||
@@ -56,8 +56,11 @@
|
|||||||
|
|
||||||
## System Requirements
|
## System Requirements
|
||||||
|
|
||||||
- macOS 11.x (Big Sur) or later (uses Rosetta2 on Apple Silicon machines).
|
- macOS 13 Ventura or later for Apple Silicon builds.
|
||||||
- Xcode Command Line Tools for native compilation (Emacs 28.x and later).
|
- macOS 12 Monterey or later for Intel builds, which can run on Apple Silicon
|
||||||
|
via Rosetta2.
|
||||||
|
- Xcode Command Line Tools to use native compilation in Emacs, available since
|
||||||
|
28.x.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
@@ -84,32 +87,53 @@ for at least a day or two without any obvious issues.
|
|||||||
brew tap jimeh/emacs-builds
|
brew tap jimeh/emacs-builds
|
||||||
```
|
```
|
||||||
2. Install one of the available casks:
|
2. Install one of the available casks:
|
||||||
- `emacs-app` for the latest stable release of Emacs (includes native-comp
|
- `emacs-app` — Latest stable release of Emacs.
|
||||||
since v28.1):
|
|
||||||
```
|
```
|
||||||
brew install --cask emacs-app
|
brew install --cask emacs-app
|
||||||
```
|
```
|
||||||
- `emacs-app-pretest` for the latest pretest build from Emacs:
|
- `emacs-app-pretest` — Latest pretest build of Emacs.
|
||||||
```
|
```
|
||||||
brew install --cask emacs-app-pretest
|
brew install --cask emacs-app-pretest
|
||||||
```
|
```
|
||||||
- `emacs-app-nightly` for the latest nightly build from Emacs' `master`
|
- `emacs-app-nightly` — Build of Emacs from the `master` branch, updated
|
||||||
branch:
|
every night.
|
||||||
```
|
```
|
||||||
brew install --cask emacs-app-nightly
|
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]:
|
- `emacs-app-good` for the latest known good nightly build listed on [#7][7]:
|
||||||
```
|
```
|
||||||
brew install --cask emacs-app-good
|
brew install --cask emacs-app-good
|
||||||
```
|
```
|
||||||
- `emacs-app-nightly-29` for the latest Emacs 29.x nightly build from the
|
|
||||||
`emacs-29` branch:
|
|
||||||
```
|
|
||||||
brew install --cask emacs-app-nightly-29
|
|
||||||
```
|
|
||||||
|
|
||||||
[7]: https://github.com/jimeh/emacs-builds/issues/7
|
[7]: https://github.com/jimeh/emacs-builds/issues/7
|
||||||
|
|
||||||
|
## Apple Silicon
|
||||||
|
|
||||||
|
Native builds for Apple Silicon is supported, but currently GitHub's M1-based
|
||||||
|
Actions Runners are prohibitively expensive for nightly builds. Intel builds
|
||||||
|
though do work on Apple Silicon machines via Rosetta2, with a minor performance
|
||||||
|
impact.
|
||||||
|
|
||||||
|
Due to the costs, Apple Silicon builds are for now only scheduled for the 1st of
|
||||||
|
each month. The `emacs-app-monthly` Homebrew Cask will always be pointing at a
|
||||||
|
release that includes Intel and Apple Silicon builds.
|
||||||
|
|
||||||
|
Builds for stable releases of Emacs will also include both Intel and Apple
|
||||||
|
Silicon builds.
|
||||||
|
|
||||||
|
### Costs
|
||||||
|
|
||||||
|
At time of writing (2023-11-21), an average Apple Silicon build uses around 17
|
||||||
|
minutes of billable time, at a cost of $0.16 USD per minute, that comes out to
|
||||||
|
around $2.72 per build. I am considering enabling sponsorship on this repository
|
||||||
|
in an effort to cover the costs for more frequent Apple Silicon builds, and will
|
||||||
|
update here if/when I have any news.
|
||||||
|
|
||||||
## Use Emacs.app as `emacs` CLI Tool
|
## Use Emacs.app as `emacs` CLI Tool
|
||||||
|
|
||||||
### Installed via Homebrew Cask
|
### Installed via Homebrew Cask
|
||||||
@@ -192,3 +216,21 @@ GitHub Actions workflow run which produced the build.
|
|||||||
Please see [Issues][] for details of things to come, or to report issues.
|
Please see [Issues][] for details of things to come, or to report issues.
|
||||||
|
|
||||||
[issues]: https://github.com/jimeh/emacs-builds/issues
|
[issues]: https://github.com/jimeh/emacs-builds/issues
|
||||||
|
|
||||||
|
## News / Recent Changes
|
||||||
|
|
||||||
|
### 2023-11-22 — Apple Silicon builds, drop macOS 11 support
|
||||||
|
|
||||||
|
Apple Silicon builds are now available, but limited to stable releases, and
|
||||||
|
nightly builds on the 1st of each month due to the cost of using M1-based
|
||||||
|
runners on GitHub Actions. Apple Silicon builds also require macOS 13 Ventura,
|
||||||
|
as that is the oldest macOS version available on M1-based runners.
|
||||||
|
|
||||||
|
Additionally, Intel builds minimum required macOS version has been increased
|
||||||
|
from macOS 11 Big Sur, to macOS 12 Monterey. This was needed as Homebrew no
|
||||||
|
longer supports Big Sur, leading to very lengthy and error prone builds as all
|
||||||
|
Homebrew dependencies had to be installed from source.
|
||||||
|
|
||||||
|
If dropping support for macOS 11 turns out to be a big issue, it may be possible
|
||||||
|
to offer macOS 11 compatible builds on a less frequent schedule similar to what
|
||||||
|
we're doing with Apple Silicon.
|
||||||
|
|||||||
Reference in New Issue
Block a user