mirror of
https://github.com/jimeh/emacs-builds.git
synced 2026-02-19 13:06:40 +00:00
Compare commits
16 Commits
test-build
...
Emacs.2023
| Author | SHA1 | Date | |
|---|---|---|---|
|
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:
|
||||
description: GitHub Actions runner OS
|
||||
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:
|
||||
description: Git ref to build
|
||||
type: string
|
||||
@@ -58,6 +64,10 @@ on:
|
||||
TAP_REPO_TOKEN:
|
||||
description: Homebrew Tap Token
|
||||
required: true
|
||||
outputs:
|
||||
package_created:
|
||||
description: "Whether or not a package was created"
|
||||
value: ${{ jobs.package.result == 'success' }}
|
||||
|
||||
jobs:
|
||||
prepare:
|
||||
@@ -88,16 +98,31 @@ jobs:
|
||||
echo "sha=--sha '${{ inputs.git_sha }}'" >> $GITHUB_OUTPUT
|
||||
plan:
|
||||
needs: [prepare]
|
||||
runs-on: ${{ inputs.os }}
|
||||
runs-on: ${{ inputs.build_os }}
|
||||
outputs:
|
||||
check: ${{ steps.check.outputs.result }}
|
||||
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
|
||||
if: ${{ inputs.os == inputs.build_os }}
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: emacs-builder
|
||||
path: bin
|
||||
- name: Ensure emacs-builder is executable
|
||||
if: ${{ inputs.os == inputs.build_os }}
|
||||
run: chmod +x bin/emacs-builder
|
||||
- name: Plan build
|
||||
run: >-
|
||||
@@ -124,10 +149,10 @@ jobs:
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- run: echo 'Planned release already seems to exist.'
|
||||
if: ${{ steps.check.outputs.result == 'fail' }}
|
||||
if: ${{ steps.check.outputs.result == 'ok' }}
|
||||
|
||||
build:
|
||||
runs-on: ${{ inputs.os }}
|
||||
runs-on: ${{ inputs.build_os }}
|
||||
needs: [prepare, plan]
|
||||
# Only run if check for existing release and asset failed.
|
||||
if: ${{ needs.plan.outputs.check == 'fail' }}
|
||||
@@ -149,7 +174,7 @@ jobs:
|
||||
-ilname '*/Library/Frameworks/Python.framework/*'
|
||||
-delete
|
||||
- name: Install dependencies
|
||||
run: make bootstrap-ci
|
||||
run: make bootstrap
|
||||
working-directory: builder
|
||||
- name: Download build-plan artifact
|
||||
uses: actions/download-artifact@v3
|
||||
@@ -162,6 +187,7 @@ jobs:
|
||||
--log-level debug
|
||||
--plan build-plan.yml
|
||||
--native-full-aot
|
||||
--no-self-sign
|
||||
${{ inputs.build_args }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -180,7 +206,6 @@ jobs:
|
||||
package:
|
||||
runs-on: ${{ inputs.os }}
|
||||
needs: [prepare, plan, build]
|
||||
# Only run if check for existing release and asset failed.
|
||||
steps:
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
@@ -243,7 +268,7 @@ jobs:
|
||||
- name: Upload disk image artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: dmg
|
||||
name: ${{ inputs.artifact_prefix }}dmg
|
||||
path: |
|
||||
builds/*.dmg
|
||||
builds/*.sha*
|
||||
|
||||
5
.github/workflows/_prepare.yml
vendored
5
.github/workflows/_prepare.yml
vendored
@@ -6,12 +6,13 @@ on:
|
||||
os:
|
||||
description: GitHub Actions runner OS
|
||||
type: string
|
||||
required: true
|
||||
required: false
|
||||
default: "macos-12"
|
||||
builder_ref:
|
||||
description: Git ref to checkout of build-emacs-for-macos
|
||||
required: false
|
||||
type: string
|
||||
default: "v0.6.43"
|
||||
default: "v0.6.45"
|
||||
secrets:
|
||||
TAP_REPO_TOKEN:
|
||||
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:
|
||||
description: GitHub Actions runner OS
|
||||
type: string
|
||||
required: true
|
||||
required: false
|
||||
default: "macos-12"
|
||||
plan_artifact:
|
||||
description: Name of artifact containing a emacs-builder plan yaml file
|
||||
type: string
|
||||
@@ -20,6 +21,11 @@ on:
|
||||
description: "Test build name"
|
||||
type: string
|
||||
required: false
|
||||
update_casks:
|
||||
description: "Update casks in homebrew tap?"
|
||||
type: boolean
|
||||
required: true
|
||||
default: true
|
||||
secrets:
|
||||
TAP_REPO_TOKEN:
|
||||
description: Personal Access Token for Homebrew Tap repo
|
||||
@@ -56,7 +62,10 @@ jobs:
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- 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: >-
|
||||
gh workflow run --repo jimeh/homebrew-emacs-builds update-casks.yml
|
||||
env:
|
||||
|
||||
81
.github/workflows/build.yml
vendored
81
.github/workflows/build.yml
vendored
@@ -19,9 +19,9 @@ on:
|
||||
required: false
|
||||
default: ""
|
||||
os:
|
||||
description: 'Runner OS ("macos-11", "macos-12", or "macos-latest")'
|
||||
description: 'Runner OS ("macos-12", "macos-13", or "macos-latest")'
|
||||
required: true
|
||||
default: "macos-11"
|
||||
default: "macos-12"
|
||||
test_build_name:
|
||||
description: "Test build name"
|
||||
required: false
|
||||
@@ -30,6 +30,16 @@ on:
|
||||
description: "prerelease or draft"
|
||||
required: false
|
||||
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:
|
||||
prepare:
|
||||
@@ -41,12 +51,19 @@ jobs:
|
||||
secrets:
|
||||
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
||||
|
||||
build:
|
||||
name: Build
|
||||
needs: [prepare]
|
||||
# ----------------------------------------------------------------------------
|
||||
# Build x86_64 version of Emacs
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
build_x86_64:
|
||||
name: Build (x86_64)
|
||||
if: ${{ github.event.inputs.x86_64 == 'true' }}
|
||||
uses: ./.github/workflows/_build.yml
|
||||
needs: [prepare]
|
||||
with:
|
||||
os: ${{ github.event.inputs.os }}
|
||||
build_os: "macos-12"
|
||||
artifact_prefix: "x86_64-"
|
||||
git_ref: ${{ github.event.inputs.git_ref }}
|
||||
git_sha: ${{ github.event.inputs.git_sha }}
|
||||
build_args: ${{ github.event.inputs.builder_args }}
|
||||
@@ -62,14 +79,58 @@ jobs:
|
||||
AC_SIGN_IDENTITY: ${{ secrets.AC_SIGN_IDENTITY }}
|
||||
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
||||
|
||||
release:
|
||||
name: Release
|
||||
needs: [build]
|
||||
release_x86_64:
|
||||
name: Release (x86_64)
|
||||
uses: ./.github/workflows/_release.yml
|
||||
needs: [build_x86_64]
|
||||
if: ${{ needs.build_x86_64.outputs.package_created }}
|
||||
with:
|
||||
os: ${{ github.event.inputs.os }}
|
||||
plan_artifact: build-plan
|
||||
dmg_artifact: dmg
|
||||
plan_artifact: x86_64-build-plan
|
||||
dmg_artifact: x86_64-dmg
|
||||
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:
|
||||
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)
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 23 * * *"
|
||||
- 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
|
||||
with:
|
||||
os: macos-11
|
||||
secrets:
|
||||
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
||||
|
||||
build:
|
||||
name: Build
|
||||
needs: [prepare]
|
||||
# ----------------------------------------------------------------------------
|
||||
# Build x86_64 version of Emacs
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
build_x86_64:
|
||||
name: Build (x86_64)
|
||||
uses: ./.github/workflows/_build.yml
|
||||
needs: [prepare]
|
||||
with:
|
||||
os: macos-11
|
||||
git_ref: master
|
||||
build_os: "macos-12"
|
||||
artifact_prefix: "x86_64-"
|
||||
git_ref: "master"
|
||||
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 }}
|
||||
@@ -37,13 +45,50 @@ jobs:
|
||||
AC_SIGN_IDENTITY: ${{ secrets.AC_SIGN_IDENTITY }}
|
||||
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
||||
|
||||
release:
|
||||
name: Release
|
||||
needs: [build]
|
||||
release_x86_64:
|
||||
name: Release (x86_64)
|
||||
uses: ./.github/workflows/_release.yml
|
||||
needs: [build_x86_64]
|
||||
if: ${{ needs.build_x86_64.outputs.package_created }}
|
||||
with:
|
||||
os: macos-11
|
||||
plan_artifact: build-plan
|
||||
dmg_artifact: dmg
|
||||
plan_artifact: x86_64-build-plan
|
||||
dmg_artifact: x86_64-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:
|
||||
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
|
||||
|
||||
Reference in New Issue
Block a user