Skip to content

Commit

Permalink
Adding Github Actions support and publishing
Browse files Browse the repository at this point in the history
  • Loading branch information
stupid-genius committed Apr 17, 2024
1 parent cf13d3e commit f99f2fe
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 1 deletion.
45 changes: 45 additions & 0 deletions .github/workflows/ci-master.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: CI - master

on:
push:
branches:
- master

jobs:
ci-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Cache node_modules
uses: actions/cache@v3
id: tests
env:
cache-name: tests
with:
path: ./node_modules/
key: tests-${{ hashFiles('./package-lock.json') }}
restore-keys: tests-${{ hashFiles('./package-lock.json') }}
timeout-minutes: 4
- name: Install dependencies
if: steps.tests.outputs.cache-hit != true
run: npm ci
- name: Run tests
run: npm test

publish-pages:
runs-on: ubuntu-latest
needs: ci-tests
if: success()
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
ref: master
- name: Configure Git
run: |
git config user.name "Allen"
git config user.email "accounts@stupid-genius.com"
- name: Publish to pages branch
run: ./publish.sh

4 changes: 3 additions & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,7 @@ else
echo SPA build
fi
cp app/client/* dist/client/ 2> /dev/null || :
cp -R app/client/images dist/client/
if [ -d "app/client/images" ] && [ -n "app/client/images/*" ]; then
cp -R app/client/images dist/client/
fi
echo Build complete
36 changes: 36 additions & 0 deletions publish.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash
#publish to gh-pages

set -e
shopt -s extglob

ORIGBRANCH=$(git rev-parse --abbrev-ref HEAD)
cleanup(){
set +e
git switch $ORIGBRANCH
git branch -D publish
echo Cleanup complete
}
trap cleanup INT HUP TERM QUIT ABRT EXIT

MESG=$(git show --no-patch --format=%s master)
echo Preparing repo
git checkout --orphan publish
npm ci
NODE_ENV=production npm run build spa
rm -rf ./!(dist) || :
rm -rf .github
rm -f .[^.]* || :
mv dist/client/* .
rmdir dist/client
rmdir dist
git add -A
git commit -m "Prepping to publish ($(git rev-parse --short master))"

echo Publish to gh-pages
git fetch origin gh-pages:gh-pages
git checkout gh-pages
git read-tree -mu publish
git commit -m "Publishing: $MESG"
git push origin gh-pages
echo Publishing complete

0 comments on commit f99f2fe

Please sign in to comment.