Compare commits

..

19 Commits

Author SHA1 Message Date
e65fc8f4f0 Update nightly-master.yml 2023-11-17 00:47:27 +00:00
f1bd559949 chore(deps): update build-emacs-for-macos to 0.6.43 2023-11-16 14:16:49 +00:00
d169338d88 ci(prepare): fix issue with setup-go cache 2023-11-16 13:30:41 +00:00
d9d8975d98 fix(workflow/build): use brew --prefix instead of hard-coded path 2023-11-15 00:06:21 +00:00
f9ee76857f chore(workflow): upgrade actions and language runtimes 2023-11-14 23:52:05 +00:00
c18f19b60b fix(workflow): use same OS in all jobs 2023-11-14 23:41:24 +00:00
dc1fdc91fc ci(meta): fix workflow 2023-07-31 22:32:38 +01:00
54e3c95ade ci(meta): update workflow to use Go 1.20 and provide GITHUB_TOKEN 2023-07-31 19:50:11 +01:00
f73a9c6c03 chore(deps): update build-emacs-for-macos to 0.6.42 2023-07-31 19:21:22 +01:00
f1e9216ef5 docs(readme): minor fix and update 2023-06-20 01:20:38 +01:00
1dd8a0a863 docs(readme): update description of patches included from emacs-plus 2023-01-25 00:19:09 +00:00
f555605f93 ci(emacs-28): disable nightly builds from emacs-28 branch
Emacs 28.x does no longer receive daily work, as next is 29.x being
worked on in emacs-29.
2023-01-24 23:59:55 +00:00
29e5fad03d docs(readme): update nightly emacs-28 references to emacs-29 2023-01-24 23:58:42 +00:00
11b57f3ed1 ci(build): remove brew env vars potentially causing issues 2023-01-16 23:56:31 +00:00
01805db074 fix(deps): hack to remove system python symlinks interfering with brew 2023-01-16 23:54:03 +00:00
2f408c834e chore(deps): update build-emacs-for-macos to 0.6.40
This should fix nightly build issues caused by homebrew package upgrade
failures.
2023-01-08 22:40:02 +00:00
9e2d7cb592 feat(nightly): add nightly build for emacs-29 branch 2022-12-04 21:28:48 +00:00
d351fb20ce chore(nightly): schedule nightly builds for 23:00 UTC
With nightly runs at midnight, it sometimes takes GitHub Actions over an
hour to start the build. On rare occasion this allows new commits from
the new day sneaking in.

Hence we adjust the scheduled build time for now, until the build tool
can be updated to support picking a target commit based on date limits.
2022-12-04 21:22:28 +00:00
1fa1a3be36 chore(deps): update build-emacs-for-macos to 0.6.39 2022-12-04 20:34:50 +00:00
8 changed files with 60 additions and 45 deletions

View File

@@ -133,16 +133,21 @@ 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 "$(brew --prefix)/bin" -type l
-ilname '*/Library/Frameworks/Python.framework/*'
-delete
- name: Install dependencies
run: make bootstrap-ci
working-directory: builder
@@ -153,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.38"
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

@@ -1,8 +1,8 @@
---
name: Nightly (emacs-28)
name: Nightly (emacs-29)
on:
schedule:
- cron: "0 0 * * *"
- cron: "0 23 * * *"
workflow_dispatch:
inputs:
git_sha:
@@ -22,7 +22,7 @@ jobs:
uses: ./.github/workflows/_build.yml
with:
os: macos-11
git_ref: emacs-28
git_ref: emacs-29
git_sha: ${{ github.event.inputs.git_sha }}
build_args: --native-comp
secrets:

View File

@@ -2,7 +2,7 @@
name: Nightly (master)
on:
schedule:
- cron: "0 0 * * *"
- cron: "0 23 * * *"
workflow_dispatch:
inputs:
git_sha:
@@ -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

@@ -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?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=emacs-28&expanded=true"><img alt="GitHub release (nightly@emacs-28)" src="https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjimeh%2Fhomebrew-emacs-builds%2Fmeta%2FCasks%2Femacs-app-nightly-28%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/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>
@@ -34,8 +34,8 @@
browser with `M-x xwidget-webkit-browse-url`.
- Native XML parsing via libxml2.
- Dynamic module loading.
- Includes the [fix-window-role][] and [system-appearance][] patches from the
excellent [emacs-plus][] project.
- Includes the [fix-window-role][], [system-appearance][], and
[round-undecorated-frame][] patches from the excellent [emacs-plus][] project.
- Emacs source is fetched from the [emacs-mirror/emacs][] GitHub repository.
- Build creation is transparent and public through the use of GitHub Actions,
allowing anyone to inspect git commit SHAs, full source code, and exact
@@ -49,6 +49,8 @@
https://github.com/d12frosted/homebrew-emacs-plus/blob/master/patches/emacs-28/fix-window-role.patch
[system-appearance]:
https://github.com/d12frosted/homebrew-emacs-plus/blob/master/patches/emacs-28/system-appearance.patch
[round-undecorated-frame]:
https://github.com/d12frosted/homebrew-emacs-plus/blob/master/patches/emacs-29/round-undecorated-frame.patch
[emacs-plus]: https://github.com/d12frosted/homebrew-emacs-plus
[emacs-mirror/emacs]: https://github.com/emacs-mirror/emacs
@@ -61,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
@@ -100,10 +102,10 @@ for a day or two without any obvious issues.
```
brew install --cask emacs-app-good
```
- `emacs-app-nightly-28` for the latest Emacs 28.x nightly build from the
`emacs-28` branch:
- `emacs-app-nightly-29` for the latest Emacs 29.x nightly build from the
`emacs-29` branch:
```
brew install --cask emacs-app-nightly-28
brew install --cask emacs-app-nightly-29
```
[7]: https://github.com/jimeh/emacs-builds/issues/7
@@ -160,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.