Skip to content

CI on master

CI on master #1005

Workflow file for this run

name: CI
run-name: CI on ${{ github.ref_name }}
on:
workflow_dispatch:
inputs:
make_snapshot_release:
description: "Publish libraries's SNAPSHOT"
default: false
type: boolean
required: false
force_deploy_ghpages:
description: "Force deploy gb-pages"
default: false
type: boolean
required: false
pull_request:
branches-ignore:
- "gh-pages"
push:
branches: [master]
tags: ["v*"]
jobs:
build-test:
name: Build and Test
runs-on: ubuntu-latest
steps:
# https://github.com/japgolly/setup-everything-scala
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Needed for the release tag // `git fetch --tags` will also work
- name: Setup Java and Scala
uses: olafurpg/setup-scala@v14
with:
java-version: openjdk@1.17.0 # adopt@1.11 # zulu@1.17.0-0 # openjdk@1.17.0
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: "22" # or whatever
- name: Setup Scala.JS
uses: japgolly/setup-scalajs@v1
- name: Cache sbt
uses: coursier/cache-action@v6.3
### Compile & Test ###
# - name: Compile and Test
# run: sbt -v -mem 2048 -J-Xmx5120m "ciJobLib"
# env:
# NODE_OPTIONS: "--openssl-legacy-provider" # This is need after node-version "16"
- name: Scalafmt
continue-on-error: true
run: sbt -v scalafmtCheckAll
- name: Compile
run: sbt -v compile
- name: Test
run: sbt -v test
- name: Generate documentation
run: sbt -v "docAll;siteAll;"
- name: npm install
run: npm install
- name: Build serviceworker and webapp
run: sbt -v fullPackAll # need npm install
- name: Build Frontend - Vite
run: npm run build
- name: Demo assembly
run: sbt -v demoJVM/assembly
ghpages:
name: Deploy gh-pages
needs: build-test
runs-on: ubuntu-latest
if: (inputs.force_deploy_ghpages == true) || (github.ref == 'refs/heads/master') || startsWith(github.ref, 'refs/tags/v')
steps:
# https://github.com/japgolly/setup-everything-scala
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Needed for the release tag // `git fetch --tags` will also work
- name: Setup Java and Scala
uses: olafurpg/setup-scala@v14
with:
java-version: adopt@1.11
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: "18" # or whatever
- name: Setup Scala.JS
uses: japgolly/setup-scalajs@v1
- name: Cache sbt
uses: coursier/cache-action@v6.3
### create build deploy gh-pages ###
- name: sbt "docAll; siteAll"
run: sbt -v "docAll; siteAll"
- name: Build
run: |
mkdir ./public
cp -r docs/target/site/did-doc/. ./public
cp -r docs/target/scaladoc/unidoc ./public/api
- name: Deploy
# https://github.com/marketplace/actions/github-pages-action
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
cname: doc.did.fmgp.app
publish:
name: Publish Artifacts
needs: build-test
runs-on: ubuntu-latest
if: ((inputs.make_snapshot_release == true) && (github.ref_name == 'master') || startsWith(github.ref, 'refs/tags/v'))
steps:
# https://github.com/japgolly/setup-everything-scala
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Needed for the release tag // `git fetch --tags` will also work
- name: Setup Java and Scala
uses: olafurpg/setup-scala@v14
with:
java-version: adopt@1.11
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: "18" # or whatever
- name: Setup Scala.JS
uses: japgolly/setup-scalajs@v1
- name: Cache sbt
uses: coursier/cache-action@v6.3
### Publish Artifacts ###
- name: publish
run: sbt ci-release
env:
NODE_OPTIONS: "--openssl-legacy-provider" # This is need after node-version "16"
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
PGP_SECRET: ${{ secrets.PGP_SECRET }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
PACKAGES_GITHUB_TOKEN: ${{ secrets.PACKAGES_GITHUB_TOKEN }}