Skip to content

Commit

Permalink
Build github pages with github actions
Browse files Browse the repository at this point in the history
  • Loading branch information
iGEL committed Dec 1, 2023
1 parent b742e9a commit d1a8941
Show file tree
Hide file tree
Showing 3 changed files with 151 additions and 0 deletions.
145 changes: 145 additions & 0 deletions .github/workflows/demo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
name: Checks & deploy
run-name: Fmt, lint, test, build, & deploy to gh-pages
on: [push]
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Install tools from asdf config
uses: ai/asdf-cache-action@v1
- name: Cache Clojure dependencies
uses: actions/cache@v3
with:
path: |
~/.m2/repository
# List all files containing dependencies:
key: cljdeps-${{ hashFiles('deps.edn') }}
restore-keys: cljdeps-
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Cache yarn dependencies
uses: actions/cache@v3
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Run formatter
run: yarn check-fmt
lint:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Install tools from asdf config
uses: ai/asdf-cache-action@v1
- name: Cache Clojure dependencies
uses: actions/cache@v3
with:
path: |
~/.m2/repository
# List all files containing dependencies:
key: cljdeps-${{ hashFiles('deps.edn') }}
restore-keys: cljdeps-
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Cache yarn dependencies
uses: actions/cache@v3
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Run linter
run: yarn lint
test:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Install tools from asdf config
uses: ai/asdf-cache-action@v1
- name: Cache Clojure dependencies
uses: actions/cache@v3
with:
path: |
~/.m2/repository
# List all files containing dependencies:
key: cljdeps-${{ hashFiles('deps.edn') }}
restore-keys: cljdeps-
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Cache yarn dependencies
uses: actions/cache@v3
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install npm deps
run: yarn install --frozen-lockfile
- name: Run tests
run: yarn test
build:
runs-on: ubuntu-latest
needs: [fmt, lint, test]
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Install tools from asdf config
uses: ai/asdf-cache-action@v1
- name: Cache Clojure dependencies
uses: actions/cache@v3
with:
path: |
~/.m2/repository
# List all files containing dependencies:
key: cljdeps-${{ hashFiles('deps.edn') }}
restore-keys: cljdeps-
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Cache yarn dependencies
uses: actions/cache@v3
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install npm deps
run: yarn install --frozen-lockfile
- name: Build js
run: yarn build-cljs
- name: Build css
run: yarn build-stylus
- name: Upload assets
uses: actions/upload-artifact@v3
with:
name: github-pages
path: public

deploy:
runs-on: ubuntu-latest
needs: build
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Download artifacts
uses: actions/download-artifact@v3
- run: ls
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
3 changes: 3 additions & 0 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
clojure 1.11.1.1257
java openjdk-18.0.2.1
nodejs 18.12.1
3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
{
"scripts": {
"fmt": "clojure -M:nsorg-fix src test && clojure -M:cljfmt-fix src *.edn test",
"check-fmt": "clojure -M:nsorg-check src test && clojure -M:cljfmt-check src *.edn test",
"lint": "clojure -M:lint",
"test": "shadow-cljs compile test",
"watch-cljs": "shadow-cljs watch app",
"build-cljs": "shadow-cljs compile app",
"watch-stylus": "stylus --include-css -c -I src -I node_modules -o public/signals.css -w -m src/signals/signals.styl",
"build-stylus": "stylus --include-css -c -I src -I node_modules -o public/signals.css -m src/signals/signals.styl",
"watch-test": "shadow-cljs watch test"
},
"devDependencies": {
Expand Down

0 comments on commit d1a8941

Please sign in to comment.