-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: workflow to deploy website to github pages (#9)
Adds a workflow that builds both the API docs and the playground application and deploys them to github-pages using the new actions-based deployment method. To make this work, Github Pages pages needs to be enabled and configured to allow deployments from actions. To do that, navigate to Settings > Code and automation > Pages, then in the section "Build and deployment" select "Github Actions" as the source. This will allow the `actions/deploy-pages` action to deploy new versions of the site. After deployment, the documentation will be available at https://googlemaps.github.io/js-adv-markers-utils and the playground will be at https://googlemaps.github.io/js-adv-markers-utils/playground The Google Maps API key needed for the playground application should be provided as a secret under the name `GOOGLE_MAPS_API_KEY` (the key can be limited to the referrer `https://googlemaps.github.io/js-adv-markers-utils/`) This has already been tested in my fork of the repository at https://usefulthink.github.io/js-adv-markers-utils/ and https://usefulthink.github.io/js-adv-markers-utils/playground
- Loading branch information
1 parent
947aab8
commit 75ac082
Showing
3 changed files
with
120 additions
and
2 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
name: Deploy to Pages | ||
|
||
on: | ||
# Runs on pushes targeting the default branch | ||
push: | ||
branches: ['main'] | ||
|
||
# Allows you to run this workflow manually from the Actions tab | ||
workflow_dispatch: | ||
|
||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | ||
permissions: | ||
contents: read | ||
pages: write | ||
id-token: write | ||
|
||
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. | ||
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. | ||
concurrency: | ||
group: 'pages' | ||
cancel-in-progress: false | ||
|
||
jobs: | ||
build_playground: | ||
name: Build Playground Application | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Setup node | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: '18' | ||
cache: npm | ||
|
||
- id: configure_pages | ||
name: Setup pages | ||
uses: actions/configure-pages@v3 | ||
|
||
- name: Install dependencies | ||
run: | | ||
npm ci | ||
cd ./examples/playground && npm ci | ||
- name: Build playground | ||
run: npm run build | ||
working-directory: ./examples/playground | ||
env: | ||
PRODUCTION_BASEURL: ${{steps.configure_pages.outputs.base_url}}/playground | ||
GOOGLE_MAPS_API_KEY: ${{secrets.GOOGLE_MAPS_API_KEY}} | ||
NODE_OPTIONS: '--max_old_space_size=4096' | ||
|
||
- name: Upload artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: playground | ||
path: ./examples/playground/dist | ||
|
||
build_docs: | ||
name: Build API Documentation | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Setup node | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: '18' | ||
cache: npm | ||
|
||
- name: Install dependencies | ||
run: npm ci | ||
|
||
- name: Genrate documentation | ||
run: | | ||
npm run build:docs | ||
- name: Upload artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: docs | ||
path: ./dist/docs | ||
|
||
build: | ||
name: Combine artifacts | ||
needs: [build_docs, build_playground] | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Download docs | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: docs | ||
path: . | ||
|
||
- name: Download playground | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: playground | ||
path: playground | ||
|
||
- name: Upload artifact | ||
uses: actions/upload-pages-artifact@v2 | ||
with: | ||
path: . | ||
|
||
# Deployment job | ||
deploy: | ||
environment: | ||
name: github-pages | ||
url: ${{ steps.deployment.outputs.page_url }} | ||
runs-on: ubuntu-latest | ||
needs: build | ||
steps: | ||
- name: Deploy to GitHub Pages | ||
id: deployment | ||
uses: actions/deploy-pages@v2 |
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
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