From 32af1b6ba97cbd4538008c859cbbe6fcf1ad681d Mon Sep 17 00:00:00 2001 From: Ed FitzGerald Date: Mon, 14 Mar 2022 13:09:03 +0000 Subject: [PATCH] feat: documentation preview (#203) --- .github/workflows/docs_pr_preview.yml | 55 +++++++++++++++++++++++++++ docs/.firebaserc | 5 +++ docs/.gitignore | 2 + docs/Dockerfile | 10 +++++ docs/build-docker.sh | 12 ++++++ docs/firebase.json | 10 +++++ 6 files changed, 94 insertions(+) create mode 100644 .github/workflows/docs_pr_preview.yml create mode 100644 docs/.firebaserc create mode 100644 docs/.gitignore create mode 100644 docs/Dockerfile create mode 100755 docs/build-docker.sh create mode 100644 docs/firebase.json diff --git a/.github/workflows/docs_pr_preview.yml b/.github/workflows/docs_pr_preview.yml new file mode 100644 index 00000000..96a36947 --- /dev/null +++ b/.github/workflows/docs_pr_preview.yml @@ -0,0 +1,55 @@ +name: Documentation Preview + +on: + pull_request: + branches: + - master + paths: + - 'docs/**' + +jobs: + build: + name: Docs Ephemerial Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Use python 3.9 + uses: actions/setup-python@v2 + with: + python-version: '3.9' + + - name: Install Dependencies + run: cd docs && pip3 install pipenv && pipenv install + + - name: Build + run: cd docs && pipenv run mkdocs build + + - name: Archive Production Artifact + uses: actions/upload-artifact@master + with: + name: dist + path: docs/site + + deploy: + name: Docs Ephemerial Deploy + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Download Artifact + uses: actions/download-artifact@master + with: + name: dist + path: docs/site + + - uses: FirebaseExtended/action-hosting-deploy@v0 + with: + repoToken: "${{ secrets.GITHUB_TOKEN }}" + firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT }}" + expires: 5d + projectId: fetch-docs-preview + entryPoint: docs/ diff --git a/docs/.firebaserc b/docs/.firebaserc new file mode 100644 index 00000000..d6710a4d --- /dev/null +++ b/docs/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "fetch-docs-preview" + } +} diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 00000000..60b4f348 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,2 @@ +site/ +.firebase/ diff --git a/docs/Dockerfile b/docs/Dockerfile new file mode 100644 index 00000000..e09c5560 --- /dev/null +++ b/docs/Dockerfile @@ -0,0 +1,10 @@ +FROM python:3.9-slim +RUN pip3 install pipenv + +WORKDIR /app +ADD Pipfile Pipfile.lock /app/ +RUN pipenv install --system --deploy +RUN mkdir /app/site + +ENTRYPOINT [ "mkdocs" ] +CMD ["build"] diff --git a/docs/build-docker.sh b/docs/build-docker.sh new file mode 100755 index 00000000..1e723dde --- /dev/null +++ b/docs/build-docker.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -e + +TAG_NAME=fetchd-docs-build:latest + +# ensure the output folder is created +mkdir -p site + +# build the latest image +docker build -t "${TAG_NAME}" . + +docker run --rm -v "${PWD}:/app" "${TAG_NAME}" diff --git a/docs/firebase.json b/docs/firebase.json new file mode 100644 index 00000000..642d828f --- /dev/null +++ b/docs/firebase.json @@ -0,0 +1,10 @@ +{ + "hosting": { + "public": "site", + "ignore": [ + "firebase.json", + "**/.*", + "**/node_modules/**" + ] + } +}