mirror of
https://github.com/jimeh/emacs-builds.git
synced 2026-02-19 08:26:40 +00:00
85 lines
2.4 KiB
YAML
85 lines
2.4 KiB
YAML
---
|
|
name: Build
|
|
on:
|
|
schedule:
|
|
- cron: "0 0 * * *"
|
|
workflow_dispatch:
|
|
inputs:
|
|
gitRef:
|
|
description: "Emacs git ref to build"
|
|
required: true
|
|
default: "master"
|
|
extraPlanArgs:
|
|
Description: "Extra plan args"
|
|
required: false
|
|
default: ""
|
|
extraBuildArgs:
|
|
Description: "Extra build args"
|
|
required: false
|
|
default: ""
|
|
extraReleaseArgs:
|
|
Description: "Extra release args"
|
|
required: false
|
|
default: ""
|
|
|
|
jobs:
|
|
build-and-publish:
|
|
runs-on: macos-10.15
|
|
steps:
|
|
- name: Checkout emacs-builds repo
|
|
uses: actions/checkout@v2
|
|
with:
|
|
path: releaser
|
|
- name: Checkout build-emacs-for-macos repo
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: jimeh/build-emacs-for-macos
|
|
ref: "0.4.11"
|
|
path: builder
|
|
- uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: 2.7
|
|
- uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.16
|
|
- name: Compile github-release tool
|
|
run: >-
|
|
go build -o ./github-release ./cmd/github-release
|
|
working-directory: releaser
|
|
- name: Plan build
|
|
run: >-
|
|
./releaser/github-release --plan plan.yml plan
|
|
--work-dir '${{ github.workspace }}'
|
|
${{ github.event.inputs.extraPlanArgs }}
|
|
${{ github.event.inputs.gitRef }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Show plan
|
|
run: >-
|
|
cat plan.yml
|
|
- name: Check if planned release and asset already exist
|
|
id: check
|
|
continue-on-error: true
|
|
run: >-
|
|
./releaser/github-release --plan plan.yml check
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Install dependencies
|
|
if: steps.check.outcome == 'failure'
|
|
run: >-
|
|
brew bundle --file=builder/Brewfile
|
|
- name: Build Emacs
|
|
if: steps.check.outcome == 'failure'
|
|
run: >-
|
|
./builder/build-emacs-for-macos --plan=plan.yml
|
|
--work-dir '${{ github.workspace }}'
|
|
--native-full-aot
|
|
${{ github.event.inputs.extraReleaseArgs }}
|
|
- name: Publish release
|
|
if: steps.check.outcome == 'failure'
|
|
run: >-
|
|
./releaser/github-release --plan plan.yml publish
|
|
${{ github.event.inputs.extraReleaseArgs }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|