Compare commits

..

19 Commits

Author SHA1 Message Date
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
f1a232b18a chore(deps): update build-emacs-for-macos to 0.6.38 2022-12-01 22:35:52 +00:00
86be2a1c30 chore(deps): update build-emacs-for-macos to 0.6.37 2022-12-01 22:15:15 +00:00
c2bba0dc34 chore(ci): use relative references to reusable workflows 2022-12-01 22:15:15 +00:00
5991d0aaf2 fix: resolve dmgbuild installation issue and outdated actions 2022-11-06 23:22:25 +00:00
54ff01d673 chore(deps): update build-emacs-for-macos to 0.6.36 2022-10-08 14:51:04 +01:00
c1c4a03471 fix(nightly): prevent nightly builds without native-comp
By default the build script will enable native-comp if it detects it in
the source tree. This caused recently nightly builds of master to be
built without native-comp due to recent changes in Emacs' configure
script which broke native-comp detection. More details here:

https://github.com/jimeh/build-emacs-for-macos/issues/76

Hence we explicitly enable native-comp now for the nightly master and
emacs-28 builds, which will cause the build script to fail if it cannot
detect native-comp support in the source tree.

Any failure to detect native-comp in master and emacs-28 branches would
at this point be due to a bug/issue with the build script, rather than
Emacs' source tree.
2022-10-08 14:46:14 +01:00
8 changed files with 68 additions and 59 deletions

View File

@@ -68,25 +68,24 @@ jobs:
test_plan_args: ${{ steps.test_plan_args.outputs.args }}
steps:
- name: Download emacs-builder git SHA artifact
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: emacs-builder-git-sha
path: ./
- name: Store builder Git SHA
id: builder_sha
run: >-
echo "::set-output name=sha::$(cat emacs-builder-git-sha.txt)"
echo "sha=$(cat emacs-builder-git-sha.txt)" >> $GITHUB_OUTPUT
- name: Prepare plan test args
id: test_plan_args
if: ${{ inputs.test_build_name != '' }}
run: >-
echo "::set-output name=args::--test-build '${{ inputs.test_build_name }}' --test-release-type '${{ inputs.test_release_type }}'"
echo "args=--test-build '${{ inputs.test_build_name }}' --test-release-type '${{ inputs.test_release_type }}'" >> $GITHUB_OUTPUT
- name: Set git SHA override
id: emacs_sha
if: ${{ inputs.git_sha != '' }}
run: >-
echo "::set-output name=sha::--sha '${{ inputs.git_sha }}'"
echo "sha=--sha '${{ inputs.git_sha }}'" >> $GITHUB_OUTPUT
plan:
needs: [prepare]
runs-on: ${{ inputs.os }}
@@ -94,7 +93,7 @@ jobs:
check: ${{ steps.check.outputs.result }}
steps:
- name: Download pre-built emacs-builder artifact
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: emacs-builder
path: bin
@@ -112,7 +111,7 @@ jobs:
- name: Show plan
run: cat build-plan.yml
- name: Upload build-plan artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: ${{ inputs.artifact_prefix }}build-plan
path: build-plan.yml
@@ -121,8 +120,7 @@ jobs:
id: check
continue-on-error: true
run: |
RESULT="$((bin/emacs-builder -l debug release --plan build-plan.yml check && echo 'ok') || echo 'fail')"
echo "::set-output name=result::$RESULT"
echo "result=$((bin/emacs-builder -l debug release --plan build-plan.yml check && echo 'ok') || echo 'fail')" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: echo 'Planned release already seems to exist.'
@@ -145,29 +143,36 @@ jobs:
ruby-version: 2.7
- name: Update homebrew
run: brew update
- name: Fix system python breaking homebrew
run: >-
find /usr/local/bin -type l
-ilname '*/Library/Frameworks/Python.framework/*'
-delete
- name: Install dependencies
run: make bootstrap-ci
working-directory: builder
- name: Download build-plan artifact
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: ${{ inputs.artifact_prefix }}build-plan
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:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload unsigned app artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: ${{ inputs.artifact_prefix }}unsigned-app
path: builds/*.tbz
if-no-files-found: error
- name: Upload Emacs source artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: ${{ inputs.artifact_prefix }}emacs-source
path: builder/tarballs/*.tgz
@@ -177,24 +182,26 @@ jobs:
needs: [prepare, plan, build]
# Only run if check for existing release and asset failed.
steps:
- name: Install dependencies
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install dmgbuild
run: |
brew install python
$(command -v pip3 || command -v pip) install --upgrade dmgbuild
- name: Download pre-built emacs-builder artifact
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: emacs-builder
path: bin
- name: Ensure emacs-builder is executable
run: chmod +x bin/emacs-builder
- name: Download build-plan artifact
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: ${{ inputs.artifact_prefix }}build-plan
path: ./
- name: Download unsigned app artifact
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: ${{ inputs.artifact_prefix }}unsigned-app
path: builds
@@ -234,7 +241,7 @@ jobs:
AC_PROVIDER: ${{ secrets.AC_PROVIDER }}
AC_SIGN_IDENTITY: ${{ secrets.AC_SIGN_IDENTITY }}
- name: Upload disk image artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: dmg
path: |

View File

@@ -7,7 +7,7 @@ on:
description: Git ref to checkout of build-emacs-for-macos
required: false
type: string
default: "v0.6.35"
default: "v0.6.42"
secrets:
TAP_REPO_TOKEN:
description: Personal Access Token for Homebrew Tap repo
@@ -20,7 +20,7 @@ jobs:
runs-on: macos-11
steps:
- name: Checkout build-emacs-for-macos repo
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
repository: jimeh/build-emacs-for-macos
ref: ${{ inputs.builder_ref }}
@@ -30,7 +30,7 @@ jobs:
git rev-parse HEAD > emacs-builder-git-sha.txt
working-directory: builder
- name: Upload builder git SHA artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: emacs-builder-git-sha
path: builder/emacs-builder-git-sha.txt
@@ -38,7 +38,7 @@ jobs:
- uses: actions/setup-go@v2
with:
go-version: 1.16
- uses: actions/cache@v2
- uses: actions/cache@v3
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('builder/**/go.sum') }}
@@ -47,7 +47,7 @@ jobs:
run: make build
working-directory: builder
- name: Upload emacs-builder artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: emacs-builder
path: builder/bin/emacs-builder

View File

@@ -22,21 +22,21 @@ jobs:
runs-on: macos-11
steps:
- name: Download pre-built emacs-builder artifact
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: emacs-builder
path: bin
- name: Ensure emacs-builder is executable
run: chmod +x bin/emacs-builder
- name: Download build-plan.yml artifact
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: ${{ inputs.plan_artifact }}
path: ./
- name: Download disk image artifacts
id: dmg
continue-on-error: true
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: ${{ inputs.dmg_artifact }}
path: builds

View File

@@ -34,7 +34,7 @@ on:
jobs:
prepare:
name: Prepare
uses: jimeh/emacs-builds/.github/workflows/_prepare.yml@main
uses: ./.github/workflows/_prepare.yml
with:
builder_ref: ${{ github.event.inputs.builder_ref }}
secrets:
@@ -43,7 +43,7 @@ jobs:
build:
name: Build
needs: [prepare]
uses: jimeh/emacs-builds/.github/workflows/_build.yml@main
uses: ./.github/workflows/_build.yml
with:
os: ${{ github.event.inputs.os }}
git_ref: ${{ github.event.inputs.git_ref }}
@@ -64,7 +64,7 @@ jobs:
release:
name: Release
needs: [build]
uses: jimeh/emacs-builds/.github/workflows/_release.yml@main
uses: ./.github/workflows/_release.yml
with:
plan_artifact: build-plan
dmg_artifact: dmg

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:
@@ -12,18 +12,19 @@ on:
jobs:
prepare:
name: Prepare
uses: jimeh/emacs-builds/.github/workflows/_prepare.yml@main
uses: ./.github/workflows/_prepare.yml
secrets:
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
build:
name: Build
needs: [prepare]
uses: jimeh/emacs-builds/.github/workflows/_build.yml@main
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:
APPLE_DEVELOPER_CERTIFICATE_P12_BASE64: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_P12_BASE64 }}
APPLE_DEVELOPER_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_PASSWORD }}
@@ -37,7 +38,7 @@ jobs:
release:
name: Release
needs: [build]
uses: jimeh/emacs-builds/.github/workflows/_release.yml@main
uses: ./.github/workflows/_release.yml
with:
plan_artifact: build-plan
dmg_artifact: dmg

View File

@@ -2,7 +2,7 @@
name: Nightly (master)
on:
schedule:
- cron: "0 0 * * *"
- cron: "0 23 * * *"
workflow_dispatch:
inputs:
git_sha:
@@ -12,18 +12,19 @@ on:
jobs:
prepare:
name: Prepare
uses: jimeh/emacs-builds/.github/workflows/_prepare.yml@main
uses: ./.github/workflows/_prepare.yml
secrets:
TAP_REPO_TOKEN: ${{ secrets.TAP_REPO_TOKEN }}
build:
name: Build
needs: [prepare]
uses: jimeh/emacs-builds/.github/workflows/_build.yml@main
uses: ./.github/workflows/_build.yml
with:
os: macos-11
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,7 +38,7 @@ jobs:
release:
name: Release
needs: [build]
uses: jimeh/emacs-builds/.github/workflows/_release.yml@main
uses: ./.github/workflows/_release.yml
with:
plan_artifact: build-plan
dmg_artifact: dmg

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.20"
- 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.