diff --git a/.github/workflows/cibuild.yml b/.github/workflows/cibuild.yml index 01a026a2331..c2979504992 100644 --- a/.github/workflows/cibuild.yml +++ b/.github/workflows/cibuild.yml @@ -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) @@ -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 diff --git a/.github/workflows/debug-client.yml b/.github/workflows/debug-client.yml new file mode 100644 index 00000000000..aed7943e63a --- /dev/null +++ b/.github/workflows/debug-client.yml @@ -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 'bot@opentripplanner.org' + + # Fetch the assets repo + git remote add $REMOTE https://$TOKEN@github.com/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 diff --git a/.github/workflows/post-merge.yml b/.github/workflows/post-merge.yml index 24adaed960a..1500a0f9d9e 100644 --- a/.github/workflows/post-merge.yml +++ b/.github/workflows/post-merge.yml @@ -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') diff --git a/.gitignore b/.gitignore index b05accf1c7a..a90f06cdcb0 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/client-next/README.md b/client-next/README.md index 3145f8f6d0e..3ec1af42c8a 100644 --- a/client-next/README.md +++ b/client-next/README.md @@ -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.. diff --git a/client-next/vite.config.ts b/client-next/vite.config.ts index f5fa0ab82ee..8d3ba8000c7 100644 --- a/client-next/vite.config.ts +++ b/client-next/vite.config.ts @@ -6,7 +6,7 @@ export default defineConfig({ plugins: [react()], base: '/debug-client-preview/', build: { - outDir: '../src/client/debug-client-preview', + outDir: 'output', emptyOutDir: true, }, });