Merge pull request #340 from johnarban/fix-cloud-cover-csv #237
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: Build and Deploy | |
on: | |
push: | |
branches: | |
main | |
jobs: | |
build: | |
if: ${{ github.repository_owner == 'cosmicds' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
persist-credentials: false | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '18.17.1' | |
- name: Yarn install | |
run: yarn install | |
- name: Lint | |
run: yarn lint | |
- name: Build | |
run: yarn build | |
env: | |
VUE_APP_CDS_API_KEY: ${{ secrets.CDS_API_KEY }} | |
- name: Get workspaces | |
uses: sergeysova/jq-action@v2 | |
id: workspaces | |
with: | |
cmd: (cat package.json | jq -r '.workspaces | @sh') | tr -d \' | |
- name: BrowserStack env setup | |
uses: browserstack/github-actions/setup-env@master | |
with: | |
username: ${{ secrets.BROWSERSTACK_USERNAME }} | |
access-key: ${{ secrets.BROWSERSTACK_ACCESS_KEY }} | |
- name: 'BrowserStack local tunnel setup' | |
uses: browserstack/github-actions/setup-local@master | |
with: | |
local-testing: start | |
local-identifier: random | |
- name: Run BrowserStack tests | |
run: | | |
set -xeuo pipefail | |
workspaces=(${{ steps.workspaces.outputs.value }}) | |
for ws in "${workspaces[@]}" | |
do | |
if [[ $ws != 'common' && $ws != 'tests' && -d tests/${ws} ]] | |
then | |
cd $ws | |
yarn serve & | |
sleep 10 # give the local service time to start up | |
cd ../tests | |
yarn bs-local -e default,firefox,edge,safari --group $ws -o reports | |
pkill -f vue-cli-service # stop the servers | |
cd .. | |
fi | |
done | |
- name: 'BrowserStackLocal Stop' # Terminating the BrowserStackLocal tunnel connection | |
uses: browserstack/github-actions/setup-local@master | |
with: | |
local-testing: stop | |
- name: Rearrange for Pages | |
run: | | |
workspaces=(${{ steps.workspaces.outputs.value }}) | |
for ws in "${workspaces[@]}" | |
do | |
draft=$(cat ${ws}/package.json | jq -r '.draft // false | @sh') | |
if [[ $draft != 'true' && $ws != 'common' && $ws != 'tests' ]] | |
then | |
mv ${ws}/dist dist/${ws} | |
fi | |
done | |
- name: Deploy to GitHub Pages | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
branch: gh-pages | |
folder: dist | |
ssh-key: ${{ secrets.DEPLOY_KEY }} |