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

View File

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

View File

@@ -4,6 +4,10 @@ name: _release
on: on:
workflow_call: workflow_call:
inputs: inputs:
os:
description: GitHub Actions runner OS
type: string
required: true
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
@@ -12,6 +16,10 @@ on:
description: Name of artifact containing a *.dmg files to release description: Name of artifact containing a *.dmg files to release
type: string type: string
required: true required: true
test_build_name:
description: "Test build name"
type: string
required: false
secrets: secrets:
TAP_REPO_TOKEN: TAP_REPO_TOKEN:
description: Personal Access Token for Homebrew Tap repo description: Personal Access Token for Homebrew Tap repo
@@ -19,7 +27,7 @@ on:
jobs: jobs:
github: github:
runs-on: macos-11 runs-on: ${{ inputs.os }}
steps: steps:
- name: Download pre-built emacs-builder artifact - name: Download pre-built emacs-builder artifact
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
@@ -48,7 +56,7 @@ 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.testBuildName == '' }} if: ${{ steps.dmg.outputs.result != 'fail' && inputs.test_build_name == '' }}
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:

View File

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

View File

@@ -13,6 +13,8 @@ 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 }}
@@ -40,6 +42,7 @@ jobs:
needs: [build] needs: [build]
uses: ./.github/workflows/_release.yml uses: ./.github/workflows/_release.yml
with: with:
os: macos-11
plan_artifact: build-plan plan_artifact: build-plan
dmg_artifact: dmg dmg_artifact: dmg
secrets: secrets:

View File

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

View File

@@ -63,13 +63,13 @@
### Manual Download ### 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. latest stable release.
Nightly builds of Emacs are for the most part just fine, but if you don't like 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 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 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 [releases]: https://github.com/jimeh/emacs-builds/releases
[latest]: https://github.com/jimeh/emacs-builds/releases/latest [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 [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 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 means a nightly build will only be produced if there have been new commits since
the last nightly build. the last nightly build.