Compare commits

..

10 Commits

7 changed files with 44 additions and 36 deletions

View File

@@ -133,19 +133,19 @@ jobs:
if: ${{ needs.plan.outputs.check == 'fail' }}
steps:
- name: Checkout build-emacs-for-macos repo
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
repository: jimeh/build-emacs-for-macos
ref: ${{ needs.prepare.outputs.builder_sha }}
path: builder
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
ruby-version: "3.2"
- name: Update homebrew
run: brew update
- name: Fix system python breaking homebrew
run: >-
find /usr/local/bin -type l
find "$(brew --prefix)/bin" -type l
-ilname '*/Library/Frameworks/Python.framework/*'
-delete
- name: Install dependencies
@@ -158,7 +158,9 @@ jobs:
path: ./
- name: Build Emacs
run: >-
./builder/build-emacs-for-macos --plan build-plan.yml
./builder/build-emacs-for-macos
--log-level debug
--plan build-plan.yml
--native-full-aot
${{ inputs.build_args }}
env:

View File

@@ -3,11 +3,15 @@ name: _prepare
on:
workflow_call:
inputs:
os:
description: GitHub Actions runner OS
type: string
required: true
builder_ref:
description: Git ref to checkout of build-emacs-for-macos
required: false
type: string
default: "v0.6.41"
default: "v0.6.43"
secrets:
TAP_REPO_TOKEN:
description: Personal Access Token for Homebrew Tap repo
@@ -15,40 +19,30 @@ on:
jobs:
emacs-builder:
# Use oldest version of macOS to ensure emacs-bulder binary is compatible
# with later versions of macOS.
runs-on: macos-11
runs-on: ${{ inputs.os }}
steps:
- name: Checkout build-emacs-for-macos repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: jimeh/build-emacs-for-macos
ref: ${{ inputs.builder_ref }}
path: builder
- name: Store builder Git SHA
run: |
git rev-parse HEAD > emacs-builder-git-sha.txt
working-directory: builder
- name: Upload builder git SHA artifact
uses: actions/upload-artifact@v3
with:
name: emacs-builder-git-sha
path: builder/emacs-builder-git-sha.txt
path: emacs-builder-git-sha.txt
if-no-files-found: error
- uses: actions/setup-go@v2
- uses: actions/setup-go@v4
with:
go-version: 1.16
- uses: actions/cache@v3
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('builder/**/go.sum') }}
restore-keys: ${{ runner.os }}-go-
go-version: "1.21"
- name: Build emacs-builder tool
run: make build
working-directory: builder
- name: Upload emacs-builder artifact
uses: actions/upload-artifact@v3
with:
name: emacs-builder
path: builder/bin/emacs-builder
path: bin/emacs-builder
if-no-files-found: error

View File

@@ -4,6 +4,10 @@ name: _release
on:
workflow_call:
inputs:
os:
description: GitHub Actions runner OS
type: string
required: true
plan_artifact:
description: Name of artifact containing a emacs-builder plan yaml file
type: string
@@ -12,6 +16,10 @@ on:
description: Name of artifact containing a *.dmg files to release
type: string
required: true
test_build_name:
description: "Test build name"
type: string
required: false
secrets:
TAP_REPO_TOKEN:
description: Personal Access Token for Homebrew Tap repo
@@ -19,7 +27,7 @@ on:
jobs:
github:
runs-on: macos-11
runs-on: ${{ inputs.os }}
steps:
- name: Download pre-built emacs-builder artifact
uses: actions/download-artifact@v3
@@ -48,7 +56,7 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Trigger update casks workflow in homebrew tap
if: ${{ steps.dmg.outputs.result != 'fail' && inputs.testBuildName == '' }}
if: ${{ steps.dmg.outputs.result != 'fail' && inputs.test_build_name == '' }}
run: >-
gh workflow run --repo jimeh/homebrew-emacs-builds update-casks.yml
env:

View File

@@ -36,6 +36,7 @@ jobs:
name: Prepare
uses: ./.github/workflows/_prepare.yml
with:
os: ${{ github.event.inputs.os }}
builder_ref: ${{ github.event.inputs.builder_ref }}
secrets:
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
@@ -66,7 +67,9 @@ jobs:
needs: [build]
uses: ./.github/workflows/_release.yml
with:
os: ${{ github.event.inputs.os }}
plan_artifact: build-plan
dmg_artifact: dmg
test_build_name: ${{ github.event.inputs.test_build_name }}
secrets:
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}

View File

@@ -13,6 +13,8 @@ jobs:
prepare:
name: Prepare
uses: ./.github/workflows/_prepare.yml
with:
os: macos-11
secrets:
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
@@ -40,6 +42,7 @@ jobs:
needs: [build]
uses: ./.github/workflows/_release.yml
with:
os: macos-11
plan_artifact: build-plan
dmg_artifact: dmg
secrets:

View File

@@ -10,20 +10,18 @@ jobs:
update-metadata:
runs-on: ubuntu-latest
steps:
- name: Checkout tap repository main branch
uses: actions/checkout@v2
- name: Checkout meta branch
uses: actions/checkout@v3
with:
ref: meta
- uses: actions/setup-go@v2
- uses: actions/setup-go@v4
with:
go-version: 1.17
- uses: actions/cache@v2
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('builder/**/go.sum') }}
restore-keys: ${{ runner.os }}-go-
go-version: "1.21"
- name: update total downloads shield JSON
run: go run . badges downloads -o total-downloads/shield.json
run: >-
go run . badges downloads -o total-downloads/shield.json
env:
GITHUB_TOKEN: ${{ github.token }}
- name: commit and push changes to meta branch
uses: stefanzweifel/git-auto-commit-action@v4
with:

View File

@@ -63,13 +63,13 @@
### Manual Download
See the [Releases][] page to download latest builds, or [here](latest) for the
See the [Releases][] page to download latest builds, or [here][latest] for the
latest stable release.
Nightly builds of Emacs are for the most part just fine, but if you don't like
living too close to the edge, see issue [#7 Known Good Nightly Builds][7] for a
list of recent nightly builds which have been actively used by a living being
for a day or two without any obvious issues.
for at least a day or two without any obvious issues.
[releases]: https://github.com/jimeh/emacs-builds/releases
[latest]: https://github.com/jimeh/emacs-builds/releases/latest
@@ -162,7 +162,7 @@ Build logs are only retained by GitHub for 90 days though.
[actions]: https://github.com/jimeh/emacs-builds/actions
Nightly builds are scheduled for 0:00 UTC every night, based on the latest
Nightly builds are scheduled for 23:00 UTC every night, based on the latest
commit from the `master` branch of the [emacs-mirror/emacs][] repository. This
means a nightly build will only be produced if there have been new commits since
the last nightly build.