Skip to content

Commit

Permalink
build: adding build workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
medcl committed Nov 13, 2024
1 parent 3647484 commit 718cbce
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 11 deletions.
73 changes: 73 additions & 0 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Build and Deploy Docs

on:
push:
branches:
- main
- 'v*'

jobs:
build-deploy-docs:
runs-on: ubuntu-latest

steps:
- name: Checkout Product Repo
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Set Variables Based on Branch
id: vars
run: |
CURRENT_BRANCH=${GITHUB_REF##*/}
if [[ "$CURRENT_BRANCH" == "main" ]]; then
echo "VERSION=latest" >> $GITHUB_ENV
echo "BRANCH=main" >> $GITHUB_ENV
echo "VERSIONS=latest,`git branch -r --list "origin/v*" | sed 's|origin/||' | sort -Vr | tr '\n' ',' | sed 's/,$//'`" >> $GITHUB_ENV
elif [[ "$CURRENT_BRANCH" =~ ^v.* ]]; then
echo "VERSION=$CURRENT_BRANCH" >> $GITHUB_ENV
echo "BRANCH=$CURRENT_BRANCH" >> $GITHUB_ENV
# Create VERSIONS with "latest" and current VERSION, separated by commas
#echo "VERSIONS=latest,$CURRENT_BRANCH" >> $GITHUB_ENV
echo "VERSIONS=latest,`git branch -r --list "origin/v*" | sed 's|origin/||' | sort -Vr | tr '\n' ',' | sed 's/,$//'`" >> $GITHUB_ENV
else
echo "Skipping docs build, branch doesn't match versioning pattern."
exit 0
fi
- name: Install Hugo
run: |
wget https://github.com/gohugoio/hugo/releases/download/v0.79.1/hugo_extended_0.79.1_Linux-64bit.tar.gz
tar -xzvf hugo_extended_0.79.1_Linux-64bit.tar.gz
sudo mv hugo /usr/local/bin/
- name: Prepare Config File
run: make config

- name: Checkout Docs Repo
uses: actions/checkout@v2
with:
repository: infinilabs/docs
path: docs-output
token: ${{ secrets.GITHUB_TOKEN }}

- name: Build Documentation
run: |
OUTPUT=$(pwd)/docs-output make build
- name: Commit and Push Changes
working-directory: docs-output
run: |
git config user.name "GitHub Actions"
git config user.email "[email protected]"
if [[ -n $(git status --porcelain) ]]; then
git add .
git commit -m "$(git log -1 --pretty=%B)"
git push origin main
else
echo "No changes to commit."
fi
- name: Clean Up Config File
if: success()
run: make restore-generated-file
25 changes: 14 additions & 11 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,28 @@ SHELL=/bin/bash

# Basic info
PRODUCT?= gateway
VERSION?= "latest"
VERSIONS?= "latest,v1.3.0"
BRANCH?= "main"
BRANCH?= main
VERSION?= $(shell [[ "$(BRANCH)" == "main" ]] && echo "latest" || echo "$(BRANCH)")
VERSIONS?= "latest"
OUTPUT?= "/tmp/gateway-docs"

# Temporary file path for branches
BRANCH_FILE := $(OUTPUT)/branch_list.txt

.PHONY: build

default: build

config:
cp docs/config.yaml config.bak
# Replace placeholder (e.g., "BRANCH") in config.toml with the VERSION environment variable
sed -i '' "s/BRANCH/$(BRANCH)/g" docs/config.yaml
cp docs/config.yaml config.bak
# Replace placeholder (e.g., "BRANCH") in config.toml with the VERSION environment variable
sed -i '' "s/BRANCH/$(BRANCH)/g" docs/config.yaml

build: config
cd docs && hugo.old --minify --theme book --destination="$(OUTPUT)"/"$(PRODUCT)"/"$(VERSION)"\
--baseURL="/$(PRODUCT)"/"$(VERSION)" 1> /dev/null
@$(MAKE) restore-generated-file
echo $(VERSIONS)
cd docs && hugo.old --minify --theme book --destination="$(OUTPUT)/$(PRODUCT)/$(VERSION)" \
--baseURL="/$(PRODUCT)/$(VERSION)" 1> /dev/null
@$(MAKE) restore-generated-file

restore-generated-file:
# Restore the original config.toml
mv config.bak docs/config.yaml
mv config.bak docs/config.yaml

0 comments on commit 718cbce

Please sign in to comment.