Add workflow for deploying to a CDN #16
Workflow file for this run
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: Debug client | |
on: | |
push: | |
paths: | |
- 'client-next/**' | |
jobs: | |
debug-client: | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
steps: | |
# this is necessary so that the correct credentials are put into the git configuration | |
# when we push to dev-2.x and push the HTML to the git repo | |
- uses: actions/checkout@v4 | |
if: github.event_name == 'push' && (github.ref == 'refs/heads/debug-client-cdn' || github.ref == 'refs/heads/master') | |
with: | |
token: ${{ secrets.CHANGELOG_TOKEN }} | |
fetch-depth: 0 | |
# for a simple PR where we don't push, we don't need any credentials | |
- uses: actions/checkout@v4 | |
if: github.event_name == 'pull_request' | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Build debug client | |
working-directory: client-next | |
run: | | |
npm install | |
npm run build | |
- name: Deploy compiled assets to repo | |
if: github.event_name == 'push' && github.ref == 'refs/heads/debug-client-cdn' | |
env: | |
REMOTE: debug-client | |
LOCAL_BRANCH: local-debug-client | |
REMOTE_BRANCH: main | |
run: | | |
git config --global user.name 'OTP Bot' | |
git config --global user.email '[email protected]' | |
git remote add $REMOTE https://[email protected]/opentripplanner/debug-client.git | |
git fetch --depth=1 $REMOTE $REMOTE_BRANCH:$LOCAL_BRANCH | |
git checkout $LOCAL_BRANCH | |
version=`date +%Y-%m-%dT%H-%M` | |
mkdir -p $version | |
rsync client-next/output/* $version | |
git add $version | |
git commit -am "Add newest version ${version} of debug client" | |
git push $REMOTE $LOCAL_BRANCH:$REMOTE_BRANCH | |
git checkout dev-2.x | |
sed 's|/debug-client-next/|https://cdn.jsdelivr.net/gh/opentripplanner/debug-client@main/${version}/|g' <client-next/output/index.html >src/client/debug-client-preview/index.html | |
cat src/client/debug-client-preview/index.html |