first commit

This commit is contained in:
2024-08-04 21:09:59 +08:00
commit 85d65d596a
2711 changed files with 540473 additions and 0 deletions

49
.github/workflows/build-preview.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
name: Build Preview
on:
pull_request:
branches:
- main
permissions:
contents: read
jobs:
build-preview:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
- run: npm clean-install
- run: npm run dist
- uses: actions/checkout@v3
with:
repository: openstreetmap/iD
path: './iD'
- run: npm clean-install
working-directory: './iD'
- run: npm run all
working-directory: './iD'
env:
ID_PRESETS_CDN_URL: '../../'
- run: npm run dist
working-directory: './iD'
env:
ID_PRESETS_CDN_URL: '../../'
- uses: actions/upload-artifact@v3
with:
name: preview
path: |
dist
iD/dist
- name: Store pull request number for later use
run: |
echo ${{github.event.number}} > ./pr_number
- uses: actions/upload-artifact@v3
with:
name: pr
path: ./pr_number

107
.github/workflows/deploy-preview.yml vendored Normal file
View File

@@ -0,0 +1,107 @@
name: Deploy Preview
on:
workflow_run:
workflows: ["Build Preview"]
types:
- completed
jobs:
deploy-preview:
runs-on: ubuntu-latest
if: ${{github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success'}}
steps:
- uses: actions/setup-node@v3
with:
node-version: '18'
- run: npm install --global netlify-cli@6
- run: npm install unzipper@0.10
- name: Get pull request number
uses: actions/github-script@v6
id: pull-request-number
with:
result-encoding: string
script: |
const unzipper = require('unzipper');
const artifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id}}
});
const artifact = artifacts.data.artifacts.filter(
artifact => artifact.name === 'pr'
)[0];
if (!artifact) {
throw new Error('No "pr" artifact found');
}
const download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: artifact.id,
archive_format: 'zip'
});
const directory = await unzipper.Open.buffer(Buffer.from(download.data));
const file = directory.files.find(d => d.path === 'pr_number');
const content = await file.buffer();
return content.toString();
- uses: dawidd6/action-download-artifact@v2
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: build-preview.yml
pr: ${{steps.pull-request-number.outputs.result}}
name: preview
- name: Deploy to Netlify
env:
NETLIFY_AUTH_TOKEN: ${{secrets.NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID: ${{secrets.NETLIFY_SITE_ID}}
run: netlify deploy --dir=. --alias=pr-${{steps.pull-request-number.outputs.result}}
- name: Add comment to pull request
uses: actions/github-script@v6
with:
script: |
const pullRequestNumber = parseInt(${{steps.pull-request-number.outputs.result}}, 10);
const start = ':bento:';
const author = 'github-actions[bot]';
const comments = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pullRequestNumber
});
const commentExists = comments.data.some(
comment => comment.user.login === author && comment.body.startsWith(start)
);
if (!commentExists) {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pullRequestNumber,
body: `${start} You can preview the tagging presets of this pull request [here](https://pr-${pullRequestNumber}--ideditor-presets-preview.netlify.app/id/dist/#locale=en).`
});
} else {
console.log(`Preview URL comment already added to PR #${pullRequestNumber}`);
}
- name: Clean up artifact
uses: actions/github-script@v6
with:
result-encoding: string
script: |
const artifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id}}
});
const artifact = artifacts.data.artifacts.filter(
artifact => artifact.name === 'preview'
)[0];
if (!artifact) {
throw new Error('No "preview" artifact found');
}
await github.rest.actions.deleteArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: artifact.id
});

38
.github/workflows/deploy.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
name: Deploy
permissions:
contents: write
on:
push:
branches:
- main
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'Deploy') && github.repository == 'openstreetmap/id-tagging-schema'"
steps:
- name: Checkout
uses: actions/checkout@v3 # If you're using actions/checkout@v3 you must set persist-credentials to false in most cases for the deployment to work correctly.
with:
persist-credentials: false
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
- name: Install Node.js dependencies
run: npm clean-install
- name: Build
run: npm run build
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4.5.0
with:
BRANCH: main # The branch the action should deploy to.
FOLDER: . # The folder the action should deploy.
CLEAN: false # Automatically remove deleted files from the deploy branch

40
.github/workflows/lint.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: Code Style Checks
on: [push, pull_request]
jobs:
lint:
name: Check file endings
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: |
notJSONs=`find data/ -type f -not -iname "*.json"`
for f in $notJSONs
do
echo "::error file=$f::File $f is not a .json file."
done
if [ ! -z "$notJSONs" ]; then exit 1; fi
prettier:
name: Check for code formatting mistakes
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
- run: npm clean-install
- run: 'for f in `find data/ -type f -not -iname "*.json"`; do echo "::error File $f is not a .json file."; done'
- run: npm run lint
codespell:
name: Check for spelling errors
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: codespell-project/actions-codespell@master
with:
check_filenames: true
skip: ./.git,./dist,./data/deprecated.json
ignore_words_list: "auxilary,casette,cemetary,chancel,discus,extentions,faiway,generat,goverment,guerilla,guyser,kindergarden,ore,pavillion,sculpter,storys,linz,te"
only_warn: 1

27
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
# This workflow will do a clean install of node dependencies and run tests across different versions of node.
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Test
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: ['18']
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- run: npm clean-install
- run: npm run test