-
Notifications
You must be signed in to change notification settings - Fork 15
81 lines (74 loc) · 2.88 KB
/
build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# Zola build workflow.
# Prerequisites:
# - zola writes output to public/
# - variables below set correctly
#
# Setting it up:
# It is a general limitation of gh-actions that they cannot make the very first
# deploy to gh-pages. It will seem to work, but not appear on the CDN to be
# online. You need to go to settings and set the gh-pages branch, then future
# deploys will work. See
# https://github.com/marketplace/actions/github-pages-action#%EF%B8%8F-first-deployment-with-github_token
name: Build/deploy website
env:
ZOLA_VERSION: "0.17.2"
MAIN_BRANCH: "main"
TARGET_BRANCH: "gh-pages"
CNAME: "nordic-rse.org"
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository and submodules
uses: actions/checkout@v2
with:
submodules: recursive
- name: Install zola
run: |
set -x
wget -O - \
"https://github.com/getzola/zola/releases/download/v${ZOLA_VERSION}/zola-v${ZOLA_VERSION}-x86_64-unknown-linux-gnu.tar.gz" \
| sudo tar xzf - -C /usr/local/bin
- name: Generate HTML when merged
if: ${{ github.event_name == 'push' && github.ref == format('refs/heads/{0}', env.MAIN_BRANCH) }}
run: zola build
- name: Generate HTML when building pull request
if: github.event_name == 'pull_request' && github.repository == github.event.pull_request.head.repo.full_name
run: zola build --base-url "https://nordic-rse.org/previews/PR${{ github.event.number }}"
# Add CNAME, either (first one used)
# - file in the root
# - the environment variable set above
- name: add CNAME
if: ${{ github.event_name == 'push' && github.ref == format('refs/heads/{0}', env.MAIN_BRANCH) }}
run: |
if [ -f CNAME ] ; then
mv CNAME public/
echo "Copied CNAME from repository root"
exit 0
fi
if [ -n ${{ env.CNAME }} ] ; then
echo -n ${{ env.CNAME }} > public/CNAME
echo "Used CNAME from the action workflow file"
fi
- name: Deploy to gh-pages
if: ${{ github.event_name == 'push' && github.ref == format('refs/heads/{0}', env.MAIN_BRANCH) }}
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
force_orphan: true
- name: Deploy PR preview
if: github.event_name == 'pull_request' && github.repository == github.event.pull_request.head.repo.full_name # if this build is a PR build and the PR is NOT from a fork
uses: JamesIves/github-pages-deploy-action@releases/v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages
FOLDER: ./public
TARGET_FOLDER: "previews/PR${{ github.event.number }}" # The website preview is going to be stored in the previews subfolder