Skip to content

Commit

Permalink
Adding build script and gh pages setup
Browse files Browse the repository at this point in the history
  • Loading branch information
logandonley committed Sep 7, 2023
1 parent 0eae530 commit 263d8c6
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 0 deletions.
57 changes: 57 additions & 0 deletions .github/workflows/gh-pages.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Deploy Hugo with GitHub Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Pages
uses: actions/configure-pages@v3
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: '0.110.0'
- name: Run build script
run: |
cd labs
chmod +x ./build.sh
./build.sh
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
path: ./labs/public

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2

14 changes: 14 additions & 0 deletions labs/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
git submodule update --init --recursive

cd base || exit 1

excluded_dirs="base workshop-setup"
directories=$(ls -d ../*/ | grep -vE "($(echo $excluded_dirs | sed 's/ /|/g'))/")

# For each directory I need to do the following:
# hugo --minify --config {DIRECTORY_PATH}/config.toml --contentDir {DIRECTORY_PATH}/content/ --destination ../public/{DIRECTORY_NAME}
# Note: In the DIRECTORY_NAME part, I need to strip any relative path info and just get the actual directory name
for dir in $directories; do
dir_name=$(basename $dir)
hugo --minify --config "${dir}/config.toml" --contentDir "${dir}/content/" --destination "../public/${dir_name}"
done

0 comments on commit 263d8c6

Please sign in to comment.