From ba1a96da927838c1b9e79c90e71598212aa54f95 Mon Sep 17 00:00:00 2001 From: FabioPinheiro Date: Sat, 25 Nov 2023 16:45:38 +0000 Subject: [PATCH] Deploy site to gh-pages --- .github/workflows/ci.yml | 67 +++++++++++++++++++++++++++++++++++++--- build.sbt | 6 +++- docs/publishWebsite.sh | 23 ++++++++++++++ 3 files changed, 91 insertions(+), 5 deletions(-) create mode 100644 docs/publishWebsite.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cbb14f3f..b1310468 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ on: tags: ["v*"] jobs: - Run-Tests: + build-test: name: CI runs-on: ubuntu-latest steps: @@ -37,12 +37,71 @@ jobs: - name: Cache sbt uses: coursier/cache-action@v6.3 ### Compile and TESTS ### - - run: sbt -mem 2048 -J-Xmx5120m "ciJob" + - name: sbt "ciJob" + run: sbt -mem 2048 -J-Xmx5120m "ciJob" env: NODE_OPTIONS: "--openssl-legacy-provider" # This is need after node-version "16" - - name: Release - if: ((inputs.make_snapshot_release == true) && (github.ref_name == 'master') || startsWith(github.ref, 'refs/tags/v')) + ghpages: + name: Deploy gh-pages + needs: build-test + runs-on: ubuntu-latest + if: (github.ref == 'refs/heads/master') || (github.ref == 'refs/heads/feature/gh-pages') + 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 + - 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 -mem 2048-J-Xmx5120m "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 + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./public + + 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 + - 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" diff --git a/build.sbt b/build.sbt index 68767dc8..b7b9efce 100644 --- a/build.sbt +++ b/build.sbt @@ -342,7 +342,11 @@ lazy val root = project .aggregate(didResolverWeb.js, didResolverWeb.jvm) // publish .aggregate(didUniresolver.js, didUniresolver.jvm) // NOT publish .aggregate(docs) // just to aggregate the command clean - // Move to a new repository + +// Move to a new repository +lazy val all = project + .in(file("allProjects")) + .aggregate(root) .aggregate(didExperiments.js, didExperiments.jvm) // NOT publish .aggregate(didExample.js, didExample.jvm) .aggregate(serviceworker) diff --git a/docs/publishWebsite.sh b/docs/publishWebsite.sh new file mode 100644 index 00000000..8ccb1642 --- /dev/null +++ b/docs/publishWebsite.sh @@ -0,0 +1,23 @@ +#!/bin/sh +scriptdir="$(dirname "$0")" +currentBranch="$(git branch --show-current)" +inputAPI="$scriptdir/target/scaladoc/unidoc" +outdir="$scriptdir/target/gppages" + +[[ -z $(git status -uall --porcelain) ]] && { + (cd "$scriptdir/.." ; sbt -mem 2048 -J-Xmx5120m "docAll; siteAll") # clean; + mkdir -p $outdir + cp -r "$scriptdir/target/site/did-doc/." "$outdir/" && + cp -r "$scriptdir/target/scaladoc/unidoc" "$outdir/api" && + git branch gh-pages && + git checkout gh-pages && + git pull && + git add --force "$outdir" && + git commit -m "gh-pages update at $(date '+%Y%m%d-%H%M%S')" && + git push --set-upstream origin gh-pages -f && + git checkout $currentBranch && + git branch -d gh-pages # delete branch locally +} || echo "This branch is NOT clean." + +#Now check https://fabiopinheiro.github.io/scala-did/ +#aka https://doc.did.fmgp.app/ \ No newline at end of file