sigh #5357
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Continuous Delivery | |
on: push | |
jobs: | |
build-and-upload-viewer-resources: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: 🔧 Install java | |
uses: actions/setup-java@v1 | |
with: | |
java-version: '11.0.7' | |
cache: 'maven' | |
- name: 🔧 Install clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
cli: '1.10.3.943' | |
bb: latest | |
clj-kondo: latest | |
- name: 🗝 maven cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.m2 | |
~/.gitlibs | |
~/.deps.clj | |
key: ${{ runner.os }}-maven-build-viewer-${{ hashFiles('deps.edn') }} | |
- name: Build and upload viewer resources | |
env: | |
GITHUB_TOKEN: ${{ secrets.CAS_AUTH_TOKEN }} | |
run: bb build+upload-viewer-resources | |
clj-kondo: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: 🔧 Install clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
bb: latest | |
clj-kondo: latest | |
- name: 🗝 maven cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.m2 | |
~/.gitlibs | |
~/.deps.clj | |
key: ${{ runner.os }}-maven-lint-${{ hashFiles('bb.edn') }} | |
- name: Run clj-kondo linter | |
run: bb lint | |
test: | |
runs-on: ${{matrix.sys.os}} | |
strategy: | |
matrix: | |
sys: | |
- { os: macos-latest, shell: bash } | |
- { os: ubuntu-latest, shell: bash } | |
- { os: windows-latest, shell: powershell } | |
defaults: | |
run: | |
shell: ${{matrix.sys.shell}} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: 🔧 Install java | |
uses: actions/setup-java@v1 | |
with: | |
java-version: '11.0.7' | |
- name: 🔧 Install clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
cli: '1.10.3.943' | |
bb: latest | |
- name: 🗝 maven cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.m2 | |
~/.gitlibs | |
~/.deps.clj | |
key: ${{ runner.os }}-maven-test-${{ hashFiles('deps.edn') }} | |
- name: 🧪 Run tests | |
run: bb test:clj :kaocha/reporter '[kaocha.report/documentation]' | |
static-build: | |
runs-on: ubuntu-latest | |
needs: [build-and-upload-viewer-resources] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: 🔧 Install java | |
uses: actions/setup-java@v1 | |
with: | |
java-version: '11.0.7' | |
- name: 🔧 Install clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
cli: '1.10.3.943' | |
bb: latest | |
- name: 🗝 maven cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.m2 | |
~/.gitlibs | |
~/.deps.clj | |
key: ${{ runner.os }}-maven-build-${{ hashFiles('deps.edn') }} | |
- name: 🗝 Clerk Cache | |
uses: actions/cache@v2 | |
with: | |
path: .clerk | |
key: ${{ runner.os }}-clerk-cache | |
- name: 🔐 Google Auth | |
uses: google-github-actions/auth@v0 | |
with: | |
credentials_json: ${{ secrets.GCLOUD_SERVICE_KEY }} | |
- name: 🔧 Setup Google Cloud SDK | |
uses: google-github-actions/[email protected] | |
- name: 📓 Build Clerk Book | |
run: | | |
cp notebooks/editor.clj editor.clj | |
clojure -J-Dclojure.main.report=stderr -X:demo:nextjournal/clerk :git/sha '"${{ github.sha }}"' :git/url '"https://github.com/nextjournal/clerk"' :paths '["book.clj" "CHANGELOG.md" "editor.clj"]' | |
- name: 🏗 Build Clerk Static App with default Notebooks | |
run: clojure -J-Dclojure.main.report=stderr -X:demo:nextjournal/clerk :git/sha '"${{ github.sha }}"' :git/url '"https://github.com/nextjournal/clerk"' :bundle true | |
- name: 📠 Copy book & static build to bucket under SHA | |
run: | | |
gsutil cp -r public/build gs://nextjournal-snapshots/clerk/build/${{ github.sha }} | |
- name: ✅ Add success status to report with link to snapshot | |
uses: Sibz/github-status-action@v1 | |
with: | |
authToken: ${{secrets.GITHUB_TOKEN}} | |
context: 'Continuous Delivery / Static App' | |
description: 'Ready' | |
state: 'success' | |
sha: ${{github.event.pull_request.head.sha || github.sha}} | |
target_url: https://snapshots.nextjournal.com/clerk/build/${{ github.sha }} | |
ssr: | |
name: SSR smoke test build | |
runs-on: ubuntu-latest | |
needs: [build-and-upload-viewer-resources] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: 🔧 Install java | |
uses: actions/setup-java@v1 | |
with: | |
java-version: '11.0.7' | |
- name: 🔧 Install clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
cli: '1.10.3.943' | |
- name: 🗝 maven cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.m2 | |
~/.gitlibs | |
~/.deps.clj | |
key: ${{ runner.os }}-maven-ssr-${{ hashFiles('deps.edn') }} | |
- name: 🎨 Setup Tailwindcss | |
run: yarn global add tailwindcss @tailwindcss/typography | |
- name: 🧶 Yarn Global | |
run: echo $(yarn global dir)/node_modules | |
- name: 🧪 Build Rule 30 Notebook with SSR | |
run: NODE_PATH=$(yarn global dir)/node_modules clojure -J-Dclojure.main.report=stdout -X:demo:nextjournal/clerk :git/sha '"${{ github.sha }}"' :git/url '"https://github.com/nextjournal/clerk"' :index '"notebooks/rule_30.clj"' :paths [] :ssr true :compile-css true :exclude-js true | |
- name: 🔐 Google Auth | |
uses: google-github-actions/auth@v0 | |
with: | |
credentials_json: ${{ secrets.GCLOUD_SERVICE_KEY }} | |
- name: 🔧 Setup Google Cloud SDK | |
uses: google-github-actions/[email protected] | |
- name: 📠 Copy SSR static build to bucket under SHA | |
run: | | |
gsutil cp -r public/build gs://nextjournal-snapshots/clerk-ssr/build/${{ github.sha }} | |
- name: ✅ Add success status to report with link to ssr snapshot | |
uses: Sibz/github-status-action@v1 | |
with: | |
authToken: ${{secrets.GITHUB_TOKEN}} | |
context: 'Continuous Delivery / SSR Static App' | |
description: 'Ready' | |
state: 'success' | |
sha: ${{github.event.pull_request.head.sha || github.sha}} | |
target_url: https://snapshots.nextjournal.com/clerk-ssr/build/${{ github.sha }} | |
ui-tests: | |
needs: [static-build] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: 🔧 Install clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
bb: latest | |
- name: 🗝 maven cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.m2 | |
~/.gitlibs | |
~/.deps.clj | |
key: ${{ runner.os }}-maven-ui-tests-${{ hashFiles('deps.edn') }} | |
- name: Run Playwright tests against static assets | |
run: | | |
bb test:static-app ${{ github.sha }} | |
deploy: | |
needs: [build-and-upload-viewer-resources, test] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: 🔧 Install clojure | |
uses: DeLaGuardo/setup-clojure@master | |
with: | |
bb: latest | |
- name: 🗝 maven cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.m2 | |
~/.gitlibs | |
~/.deps.clj | |
key: ${{ runner.os }}-maven-deploy-${{ hashFiles('deps.edn') }} | |
- name: Install SSH key and start ssh-agent | |
uses: webfactory/[email protected] | |
with: | |
ssh-private-key: ${{ secrets.NEXTJOURNAL_CI_SSH_KEY }} | |
- name: Publish to clojars | |
env: | |
CLOJARS_USERNAME: mkvlr | |
CLOJARS_PASSWORD: ${{ secrets.CLOJARS_PASSWORD_MKVLR }} | |
run: | | |
bb ci:publish | |
- name: Clerk version | |
id: clerk-version | |
run: | | |
CLERK_VERSION=$(bb clerk-version) | |
echo "##[set-output name=version;]${CLERK_VERSION}" | |
- uses: actions/upload-artifact@v1 | |
with: | |
name: clerk-${{ steps.clerk-version.outputs.version }}.jar | |
path: target/clerk-${{ steps.clerk-version.outputs.version }}.jar |