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 15, 2023
1 parent b742e9a commit a48be89
Show file tree
Hide file tree
Showing 5 changed files with 154 additions and 2 deletions.
145 changes: 145 additions & 0 deletions .github/workflows/build-deploy.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]
permissions:
contents: read
pages: write
id-token: write
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
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-pages-artifact@v1
with:
name: github-pages
path: public

deploy:
runs-on: ubuntu-latest
needs: [build, fmt, lint, test]
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Setup Pages
id: pages
uses: actions/configure-pages@v4
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v3
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
Binary file added img/favicon.webp
Binary file not shown.
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
5 changes: 3 additions & 2 deletions public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
<html data-bs-theme="dark">
<head>
<meta charset="utf-8" />
<title>German railway signals</title>
<title>Deutsche Eisenbahnsignale</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
<link rel="stylesheet" href="signals.css">
<link rel="icon" type="image/webp" href="img/favicon.webp">
</head>
<body>
<div id="app"></div>
<script src="/js/main.js"></script>
<script src="js/main.js"></script>
</body>
</html>

0 comments on commit a48be89

Please sign in to comment.