emacs-config/.github/workflows/publish.yml
TEC aec6d5f4e7
Config export: make a bit more robust
Because the html and pdf exports start both at the same time,
they both experience a cache miss with the xkcd sqlite db.
Poth processes download the image, and attempt to write to the db
... with the same primary key. Hence, errors.

So, when the xkcd cache isn't populated, we wait for one process to
finish before starting the other
2021-01-30 04:48:58 +08:00

78 lines
2.2 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: Install LaTeX compiler chain
run: |
git clone https://github.com/tecosaur/BMC.git ~/texmf/tex/latex/bmc
sudo apt install texlive-base texlive-latex-recommended texlive-fonts-extra latexmk
- name: Export config
run: |
cd ~/.config/doom/misc/config-publishing
./publish.sh
# - name: Debug 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