emacs-config/.github/workflows/publish.yml
TEC 00d1a88ef7
Publish script: avoid find-file-noselect + fixes
A doom change now causes a y-or-n-p prompt to appear, so we need to make
that non-interactive.
2021-01-27 17:51:35 +08:00

71 lines
1.9 KiB
YAML

name: "Publish"
on:
pull_request:
push:
branches: master
schedule:
- cron: "0 0 * * *" # daily
jobs:
deploy:
runs-on: ubuntu-20.04 # change to -latest when possible
steps:
- uses: purcell/setup-emacs@master
with:
version: 27.1
- name: Checkout config
uses: actions/checkout@v2
with:
submodules: recursive
- name: Symlink config to expected location
# I could just set DOOMDIR ... but this is also easy
run: |
mkdir -p ~/.config
ln -s $GITHUB_WORKSPACE ~/.config/doom
mkdir -p ~/.org/roam
- name: Generate init.el et. al from config.org
run: |
cd ~/.config/doom
emacs --batch --eval "(require 'org)" --eval '(org-babel-tangle-file "config.org")'
- name: Clone Doom to ~/.emacs.d
run: git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d
- name: Get Doom's version
id: doom-version
run: |
cd ~/.emacs.d
echo ::set-output name=hash::$(git log -1 | head -1 | awk '{print substr($2,1,7)}')
shell: bash
- name: Cache Doom's install
uses: actions/cache@v2
with:
path: ~/.emacs.d
key: ${{ runner.os }}-doom@${{ steps.doom-version.outputs.hash }}
- name: Doom dependencies
run: sudo apt-get install git ripgrep xclip
- name: Install Doom
run: ~/.emacs.d/bin/doom install --no-env --no-fonts
- name: Export config
run: ~/.config/doom/misc/config-publishing/publish.sh
# - name: Debug failure over SSH (tmate)
# if: ${{ failure() }}
# uses: mxschmitt/action-tmate@v3.1
- name: Deploy
if: ${{ github.event_name != 'pull_request'}}
uses: peaceiris/actions-gh-pages@v3
with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
publish_dir: ./publish
force_orphan: true