-
Notifications
You must be signed in to change notification settings - Fork 63
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into shields-south-africa
- Loading branch information
Showing
215 changed files
with
22,126 additions
and
8,364 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,86 @@ | ||
name: Build PR Preview | ||
on: | ||
pull_request: | ||
branches: [main] | ||
types: | ||
- opened | ||
- reopened | ||
- synchronize | ||
workflow_dispatch: | ||
permissions: | ||
contents: read | ||
pages: write | ||
pull-requests: write | ||
id-token: write | ||
checks: write | ||
concurrency: preview-${{ github.ref }} | ||
jobs: | ||
deploy-preview: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout Main Branch 🛎️ | ||
uses: actions/checkout@v3 | ||
with: | ||
ref: main | ||
- name: Install and Build Main Branch 🔧 | ||
run: | | ||
npm ci --include=dev | ||
npm run build | ||
npm run style | ||
npm run shields | ||
cp src/configs/config.aws.js src/config.js | ||
- name: Capture main branch usage statistics | ||
id: main-stats | ||
run: | | ||
MAIN_STATS=$(node scripts/stats.js -j) | ||
echo "MAIN_STATS<<EOF" >> $GITHUB_ENV | ||
echo -e "$MAIN_STATS" >> $GITHUB_ENV | ||
echo "EOF" >> $GITHUB_ENV | ||
- name: Checkout PR Branch 🛎️ | ||
uses: actions/checkout@v3 | ||
- name: Use Node.js 18.16.1 | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: 18.16.1 #18.17.0 is buggy | ||
- name: Install and Build 🔧 | ||
# TODO: when we move shieldlib to its own repo, move shieldlib docs CI also | ||
run: | | ||
npm ci --include=dev | ||
npm run build | ||
npm run style | ||
npm run shields | ||
cp src/configs/config.aws.js src/config.js | ||
mkdir -p dist/shield-docs | ||
cp -r shieldlib/docs/* dist/shield-docs | ||
- name: Upload Build artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: americana | ||
path: dist/ | ||
- name: Capture PR branch usage statistics | ||
id: pr-stats | ||
run: | | ||
PR_STATS=$(node scripts/stats.js -j) | ||
echo "PR_STATS<<EOF" >> $GITHUB_ENV | ||
echo -e "$PR_STATS" >> $GITHUB_ENV | ||
echo "EOF" >> $GITHUB_ENV | ||
- name: Compare Stats | ||
id: compare-stats | ||
run: | | ||
mkdir -p pr | ||
echo '${{ env.MAIN_STATS }}' | ||
echo '${{ env.PR_STATS }}' | ||
npm exec ts-node scripts/stats_compare '${{ env.MAIN_STATS }}' '${{ env.PR_STATS }}' > pr/stats-difference.md | ||
- name: Save PR artifacts | ||
env: | ||
PR_NUMBER: ${{ github.event.pull_request.number }} | ||
PR_SHA: ${{ github.event.pull_request.head.sha }} | ||
run: | | ||
echo $PR_NUMBER > pr/pr_number | ||
echo $PR_SHA > pr/pr_sha | ||
echo "Saved PR# ${{ github.event.pull_request.number }}, SHA# ${{ github.event.pull_request.head.sha }} for upload" | ||
- name: Upload PR artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: pr_ci_artifacts | ||
path: pr/ |
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,140 @@ | ||
name: Deploy PR Preview | ||
on: | ||
workflow_run: | ||
workflows: [Build PR Preview] | ||
types: | ||
- completed | ||
workflow_dispatch: | ||
jobs: | ||
deploy-preview: | ||
runs-on: ubuntu-latest | ||
if: > | ||
github.event.workflow_run.event == 'pull_request' && | ||
github.event.workflow_run.conclusion == 'success' | ||
steps: | ||
- name: "Download PR Number" | ||
uses: actions/github-script@v6 | ||
with: | ||
script: | | ||
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({ | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
run_id: context.payload.workflow_run.id, | ||
}); | ||
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => { | ||
return artifact.name == "pr_ci_artifacts" | ||
})[0]; | ||
let download = await github.rest.actions.downloadArtifact({ | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
artifact_id: matchArtifact.id, | ||
archive_format: 'zip', | ||
}); | ||
let fs = require('fs'); | ||
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/pr_ci_artifacts.zip`, Buffer.from(download.data)); | ||
- name: "Download Build" | ||
uses: actions/github-script@v6 | ||
with: | ||
script: | | ||
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({ | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
run_id: context.payload.workflow_run.id, | ||
}); | ||
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => { | ||
return artifact.name == "americana" | ||
})[0]; | ||
let download = await github.rest.actions.downloadArtifact({ | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
artifact_id: matchArtifact.id, | ||
archive_format: 'zip', | ||
}); | ||
let fs = require('fs'); | ||
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/americana.zip`, Buffer.from(download.data)); | ||
- name: "Unzip artifacts" | ||
run: | | ||
unzip pr_ci_artifacts.zip | ||
unzip -d dist americana.zip | ||
- name: Set PR variable | ||
run: | | ||
if [ ! -f pr_number ] || [ ! -f pr_sha ]; then | ||
echo "Required files pr_number or pr_sha do not exist. Exiting." | ||
exit 1 | ||
fi | ||
PR_NUM=$(cat pr_number) | ||
PR_SHA=$(cat pr_sha) | ||
if [ -z "$PR_NUM" ] || [ -z "$PR_SHA" ]; then | ||
echo "PR_NUM or PR_SHA is empty. Exiting." | ||
exit 1 | ||
fi | ||
echo "Configuring deployment for PR# $PR_NUM commit $PR_SHA" | ||
echo "PR_NUM=$PR_NUM" >> $GITHUB_ENV | ||
echo "PR_SHA=$PR_SHA" >> $GITHUB_ENV | ||
- name: Deploy via S3 | ||
uses: jakejarvis/s3-sync-action@master | ||
with: | ||
args: --acl public-read --follow-symlinks --delete --exclude '.git/*' --exclude '.github/*' | ||
env: | ||
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} | ||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | ||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | ||
AWS_REGION: ${{ secrets.AWS_REGION }} | ||
SOURCE_DIR: "./dist" | ||
DEST_DIR: pr/${{ env.PR_NUM }} | ||
- name: Wait for PR Preview Upload (1x Sprite) | ||
uses: cygnetdigital/[email protected] | ||
with: | ||
url: "https://preview.ourmap.us/pr/${{ env.PR_NUM }}/sprites/sprite.png" | ||
responseCode: "200" | ||
timeout: 120000 | ||
interval: 500 | ||
- name: Wait for PR Preview Upload (2x Sprite) | ||
uses: cygnetdigital/[email protected] | ||
with: | ||
url: "https://preview.ourmap.us/pr/${{ env.PR_NUM }}/sprites/[email protected]" | ||
responseCode: "200" | ||
timeout: 120000 | ||
interval: 500 | ||
- name: Generate Preview text | ||
run: | | ||
echo "## PR Preview: | ||
* [Map](https://preview.ourmap.us/pr/${{ env.PR_NUM }}/) | ||
* [Shield Test](https://preview.ourmap.us/pr/${{ env.PR_NUM }}/shieldtest.html) | ||
* [style.json](https://preview.ourmap.us/pr/${{ env.PR_NUM }}/style.json) | ||
* [shields.json](https://preview.ourmap.us/pr/${{ env.PR_NUM }}/shields.json) | ||
* [taginfo.json](https://preview.ourmap.us/pr/${{ env.PR_NUM }}/taginfo.json) | ||
## Sprite Sheets: | ||
<img src="https://preview.ourmap.us/pr/${{ env.PR_NUM }}/sprites/sprite.png" /> | ||
<img src="https://preview.ourmap.us/pr/${{ env.PR_NUM }}/sprites/[email protected]" /> | ||
" > pr_preview.md | ||
- uses: tibdex/github-app-token@v1 | ||
id: checks_token | ||
with: | ||
app_id: 396440 #osm-americana checks app | ||
private_key: ${{ secrets.CHECKS_WRITER_SECRET }} | ||
- name: Print Preview Links to GitHub Checks | ||
uses: LouisBrunner/[email protected] | ||
if: always() | ||
with: | ||
sha: ${{ env.PR_SHA }} | ||
token: ${{ steps.checks_token.outputs.token }} | ||
name: PR Preview | ||
details_url: https://preview.ourmap.us/pr/${{ env.PR_NUM }}/ | ||
conclusion: neutral | ||
output: | | ||
{"summary":"Preview map changes introduced by this PR", "title":"View live map and artifacts"} | ||
output_text_description_file: pr_preview.md | ||
- name: Print Stats to GitHub Checks | ||
uses: LouisBrunner/[email protected] | ||
if: always() | ||
with: | ||
sha: ${{ env.PR_SHA }} | ||
token: ${{ steps.checks_token.outputs.token }} | ||
name: Style Performance | ||
conclusion: neutral | ||
output: | | ||
{"summary":"Style size changes introduced by this PR", "title":"View metrics on style size changes"} | ||
output_text_description_file: stats-difference.md |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
name: Test Build (MacOS) | ||
|
||
on: | ||
pull_request: | ||
branches: [main] | ||
|
||
jobs: | ||
build: | ||
runs-on: macos-latest | ||
steps: | ||
- name: Checkout 🛎️ | ||
uses: actions/checkout@v3 | ||
# Node v18.17.0, introduced July 18, 2023, introduces an error in unicode processing that breaks test cases on Ubuntu. | ||
# See PR #905 and #908 for more details. | ||
# If this bug is resolved in node, these lines can revert to 18.x rather than 18.16.0. | ||
- name: Use Node.js 18.16.1 | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: 18.16.1 | ||
- name: Build Shield Library 🛡️ | ||
run: | | ||
cd shieldlib | ||
npm ci --include=dev | ||
npm run build | ||
- name: Install and Build 🔧 | ||
run: | | ||
npm ci --include=dev | ||
npm run build | ||
npm run style | ||
- name: Test 🧪 | ||
run: | | ||
npm test | ||
cd shieldlib | ||
npm test |
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,34 @@ | ||
name: Test Build (Ubuntu) | ||
|
||
on: | ||
pull_request: | ||
branches: [main] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout 🛎️ | ||
uses: actions/checkout@v3 | ||
# Node v18.17.0, introduced July 18, 2023, introduces an error in unicode processing that breaks test cases on Ubuntu. | ||
# See PR #905 and #908 for more details. | ||
# If this bug is resolved in node, these lines can revert to 18.x rather than 18.16.1. | ||
- name: Use Node.js 18.16.1 | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: 18.16.1 | ||
- name: Build Shield Library 🛡️ | ||
run: | | ||
cd shieldlib | ||
npm ci --include=dev | ||
npm run build | ||
- name: Install and Build 🔧 | ||
run: | | ||
npm ci --include=dev | ||
npm run build | ||
npm run style | ||
- name: Test 🧪 | ||
run: | | ||
npm test | ||
cd shieldlib | ||
npm test |
This file was deleted.
Oops, something went wrong.
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 |
---|---|---|
@@ -1,8 +1,11 @@ | ||
node_modules | ||
sprites | ||
build | ||
rebusurance.zip | ||
.DS_Store | ||
config.js | ||
.parcel-cache | ||
dist/ | ||
dist | ||
download | ||
local.config.js | ||
shieldlib/docs | ||
samples/ |
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 |
---|---|---|
@@ -1 +1,10 @@ | ||
recursive: true | ||
extension: | ||
- ts | ||
spec: | ||
- test/**/*.js | ||
- test/**/*.spec.ts | ||
require: ts-node/register | ||
node-option: | ||
- loader=ts-node/esm | ||
- experimental-specifier-resolution=node |
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
Oops, something went wrong.