Skip to content

Commit

Permalink
Merge pull request #5578 from opentripplanner/debug-client-cdn
Browse files Browse the repository at this point in the history
Deploy new debug client to a CDN
  • Loading branch information
leonardehrenfried authored Jan 10, 2024
2 parents f2c18a3 + 4b3b953 commit 7f92d6b
Show file tree
Hide file tree
Showing 6 changed files with 93 additions and 14 deletions.
11 changes: 0 additions & 11 deletions .github/workflows/cibuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,6 @@ jobs:
distribution: temurin
cache: maven

- name: Build debug client
working-directory: ./client-next
run: |
npm install
npm run build
- name: Prepare coverage agent, build and test
# these are split into two steps because otherwise maven keeps long-running HTTP connections
# to Maven Central open which then hang during the package phase because the Azure (Github Actions)
Expand Down Expand Up @@ -217,11 +211,6 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Build debug client
working-directory: ./client-next
run: |
npm install
npm run build
- name: Build container image with Jib, push to Dockerhub
env:
CONTAINER_REPO: docker.io/opentripplanner/opentripplanner
Expand Down
87 changes: 87 additions & 0 deletions .github/workflows/debug-client.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Debug client

on:
push:
paths:
- 'client-next/**'
pull_request:
paths:
- 'client-next/**'

# to avoid conflicts, make sure that only one workflow pushes to Github at the same time
concurrency:
group: github-push

jobs:
debug-client:
if: github.repository_owner == 'opentripplanner'
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 compiled output to the git repo
- uses: actions/checkout@v4
if: github.event_name == 'push'
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: Set version
run: echo "VERSION=`date +%Y/%m/%Y-%m-%dT%H:%M`" >> $GITHUB_ENV

- name: Build debug client
working-directory: client-next
run: |
npm install
npm run build -- --base https://cdn.jsdelivr.net/gh/opentripplanner/debug-client-assets@main/${VERSION}/
- name: Deploy compiled assets to repo
if: github.event_name == 'push' && github.ref == 'refs/heads/dev-2.x'
env:
REMOTE: debug-client
LOCAL_BRANCH: local-assets
REMOTE_BRANCH: main
TOKEN: ${{ secrets.CHANGELOG_TOKEN }}
run: |
# Configure git user
git config --global user.name 'OTP Bot'
git config --global user.email '[email protected]'
# Fetch the assets repo
git remote add $REMOTE https://[email protected]/opentripplanner/debug-client-assets.git
git fetch --depth=1 $REMOTE $REMOTE_BRANCH:$LOCAL_BRANCH
git checkout $LOCAL_BRANCH
# Copy the compiled output to a versioned folder
mkdir -p $VERSION
rsync -r client-next/output/* ./$VERSION/
git add $VERSION
git commit -am "Add version ${VERSION} of debug client"
# Push to assets repo https://github.com/opentripplanner/debug-client-assets
git push $REMOTE $LOCAL_BRANCH:$REMOTE_BRANCH
# Switch back to the OTP code
git checkout dev-2.x
git pull --rebase
CLIENT_HTML_OUTPUT=src/client/debug-client-preview/index.html
mkdir -p src/client/debug-client-preview/
cp client-next/output/index.html ${CLIENT_HTML_OUTPUT}
# just to debug
cat ${CLIENT_HTML_OUTPUT}
git add -f ${CLIENT_HTML_OUTPUT}
git commit -m "Upgrade debug client to version ${VERSION}"
git push ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git HEAD:dev-2.x
4 changes: 4 additions & 0 deletions .github/workflows/post-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ on:
- dev-2.x
types: [closed]

# to avoid conflicts, make sure that only one workflow pushes to Github at the same time
concurrency:
group: github-push

jobs:
changelog-entry:
if: github.event.pull_request.merged && github.repository_owner == 'opentripplanner' && !contains(github.event.pull_request.labels.*.name, 'skip changelog')
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ gen-py/
node_modules/
target/
/graphs
/src/client/debug-client-preview/

# for local dev only
/src/test/resources/speedtest/travelSearch-results-*.csv
Expand Down
2 changes: 1 addition & 1 deletion client-next/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,4 @@ or add it to a new `.env.development.local` file (this file will be ignored by g

In production mode, the default is to access OTP via the same origin as the client (see `.env`).
This behavior can also be modified by changing the previously mentioned environment variable at
build-time.
build-time..
2 changes: 1 addition & 1 deletion client-next/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export default defineConfig({
plugins: [react()],
base: '/debug-client-preview/',
build: {
outDir: '../src/client/debug-client-preview',
outDir: 'output',
emptyOutDir: true,
},
});

0 comments on commit 7f92d6b

Please sign in to comment.