From f335be344e2f138c6ad4de83c15e3cfc7e0262f2 Mon Sep 17 00:00:00 2001 From: Trevor Moody Date: Sat, 22 Nov 2025 22:11:55 +0000 Subject: [PATCH] build: adjusted search/replace regex/value to allow for json lines without trailing commas --- .github/workflows/server-tests.yml | 214 ++++++++++++++--------------- 1 file changed, 107 insertions(+), 107 deletions(-) diff --git a/.github/workflows/server-tests.yml b/.github/workflows/server-tests.yml index 687f4bc..60fabba 100644 --- a/.github/workflows/server-tests.yml +++ b/.github/workflows/server-tests.yml @@ -1,107 +1,107 @@ -# This workflow will do a clean install of node dependencies, build the source code 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: SASjs Build and Server Tests - -on: - pull_request: - -jobs: - test: - runs-on: ubuntu-22.04 - - strategy: - matrix: - node-version: [lts/hydrogen] - - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - - # 2. Restore npm cache manually - - name: Restore npm cache - uses: actions/cache@v3 - id: npm-cache - with: - path: ~/.npm - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- - - - name: Install Dependencies - run: npm ci - - - name: Install Rimraf - run: npm i rimraf - - - name: Build Package - run: npm run package:lib - env: - CI: true - - - name: Write VPN Files - run: | - echo "$CA_CRT" > .github/vpn/ca.crt - echo "$USER_CRT" > .github/vpn/user.crt - echo "$USER_KEY" > .github/vpn/user.key - echo "$TLS_KEY" > .github/vpn/tls.key - shell: bash - env: - CA_CRT: ${{ secrets.CA_CRT}} - USER_CRT: ${{ secrets.USER_CRT }} - USER_KEY: ${{ secrets.USER_KEY }} - TLS_KEY: ${{ secrets.TLS_KEY }} - - - name: Chmod VPN files - run: | - chmod 600 .github/vpn/ca.crt .github/vpn/user.crt .github/vpn/user.key .github/vpn/tls.key - - - name: Install Open VPN - run: | - sudo apt install apt-transport-https - sudo wget https://swupdate.openvpn.net/repos/openvpn-repo-pkg-key.pub - sudo apt-key add openvpn-repo-pkg-key.pub - sudo wget -O /etc/apt/sources.list.d/openvpn3.list https://swupdate.openvpn.net/community/openvpn3/repos/openvpn3-jammy.list - sudo apt update - sudo apt install openvpn3=17~betaUb22042+jammy - - - name: Start Open VPN 3 - run: openvpn3 session-start --config .github/vpn/config.ovpn - - - name: install pm2 - run: npm i -g pm2 - - - name: Fetch SASJS server - run: curl ${{ secrets.SASJS_SERVER_URL }}/SASjsApi/info - - - name: Deploy sasjs-tests - run: | - npm install -g replace-in-files-cli - cd sasjs-tests - replace-in-files --regex='"@sasjs/adapter".*' --replacement='"@sasjs/adapter":"latest",' ./package.json - npm i - replace-in-files --regex='"serverUrl".*' --replacement='"serverUrl":"${{ secrets.SASJS_SERVER_URL }}",' ./public/config.json - replace-in-files --regex='"userName".*' --replacement='"userName":"${{ secrets.SASJS_USERNAME }}",' ./public/config.json - replace-in-files --regex='"serverType".*' --replacement='"serverType":"SASJS",' ./public/config.json - replace-in-files --regex='"password".*' --replacement='"password":"${{ secrets.SASJS_PASSWORD }}",' ./public/config.json - cat ./public/config.json - - npm run update:adapter - pm2 start --name sasjs-test npm -- start - - - name: Sleep for 10 seconds - run: sleep 10s - shell: bash - - - name: Run cypress on sasjs - run: | - replace-in-files --regex='"sasjsTestsUrl".*' --replacement='"sasjsTestsUrl":"http://localhost:3000",' ./cypress.json - replace-in-files --regex='"username".*' --replacement='"username":"${{ secrets.SASJS_USERNAME }}",' ./cypress.json - replace-in-files --regex='"password".*' --replacement='"password":"${{ secrets.SASJS_PASSWORD }}",' ./cypress.json - cat ./cypress.json - echo "SASJS_USERNAME=${{ secrets.SASJS_USERNAME }}" - - sh ./sasjs-tests/sasjs-cypress-run.sh ${{ secrets.MATRIX_TOKEN }} https://github.com/${{github.repository}}/actions/runs/${{github.run_id}} +# This workflow will do a clean install of node dependencies, build the source code 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: SASjs Build and Server Tests + +on: + pull_request: + +jobs: + test: + runs-on: ubuntu-22.04 + + strategy: + matrix: + node-version: [lts/hydrogen] + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + + # 2. Restore npm cache manually + - name: Restore npm cache + uses: actions/cache@v3 + id: npm-cache + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install Dependencies + run: npm ci + + - name: Install Rimraf + run: npm i rimraf + + - name: Build Package + run: npm run package:lib + env: + CI: true + + - name: Write VPN Files + run: | + echo "$CA_CRT" > .github/vpn/ca.crt + echo "$USER_CRT" > .github/vpn/user.crt + echo "$USER_KEY" > .github/vpn/user.key + echo "$TLS_KEY" > .github/vpn/tls.key + shell: bash + env: + CA_CRT: ${{ secrets.CA_CRT}} + USER_CRT: ${{ secrets.USER_CRT }} + USER_KEY: ${{ secrets.USER_KEY }} + TLS_KEY: ${{ secrets.TLS_KEY }} + + - name: Chmod VPN files + run: | + chmod 600 .github/vpn/ca.crt .github/vpn/user.crt .github/vpn/user.key .github/vpn/tls.key + + - name: Install Open VPN + run: | + sudo apt install apt-transport-https + sudo wget https://swupdate.openvpn.net/repos/openvpn-repo-pkg-key.pub + sudo apt-key add openvpn-repo-pkg-key.pub + sudo wget -O /etc/apt/sources.list.d/openvpn3.list https://swupdate.openvpn.net/community/openvpn3/repos/openvpn3-jammy.list + sudo apt update + sudo apt install openvpn3=17~betaUb22042+jammy + + - name: Start Open VPN 3 + run: openvpn3 session-start --config .github/vpn/config.ovpn + + - name: install pm2 + run: npm i -g pm2 + + - name: Fetch SASJS server + run: curl ${{ secrets.SASJS_SERVER_URL }}/SASjsApi/info + + - name: Deploy sasjs-tests + run: | + npm install -g replace-in-files-cli + cd sasjs-tests + replace-in-files --regex='"@sasjs/adapter":\s*"[^"]+?([^\/"]+)"' --replacement='"@sasjs/adapter":"latest"' ./package.json + npm i + replace-in-files --regex='"serverUrl":\s*"[^"]+?([^\/"]+)"' --replacemment='"serverUrl":"${{ secrets.SASJS_SERVER_URL }}"' ./public/config.json + replace-in-files --regex='"userName":\s*"[^"]+?([^\/"]+)"' --replacement='"userName":"${{ secrets.SASJS_USERNAME }}"' ./public/config.json + replace-in-files --regex='"serverType":\s*"[^"]+?([^\/"]+)"' --replacement='"serverType":"SASJS"' ./public/config.json + replace-in-files --regex='"password":\s*"[^"]+?([^\/"]+)"' --replacement='"password":"${{ secrets.SASJS_PASSWORD }}"' ./public/config.json + cat ./public/config.json + + npm run update:adapter + pm2 start --name sasjs-test npm -- start + + - name: Sleep for 10 seconds + run: sleep 10s + shell: bash + + - name: Run cypress on sasjs + run: | + replace-in-files --regex='"sasjsTestsUrl":\s*"[^"]+?([^\/"]+)"' --replacement='"sasjsTestsUrl":"http://localhost:3000"' ./cypress.json + replace-in-files --regex='"username":\s*"[^"]+?([^\/"]+)"' --replacement='"username":"${{ secrets.SASJS_USERNAME }}"' ./cypress.json + replace-in-files --regex='"password":\s*"[^"]+?([^\/"]+)"' --replacement='"password":"${{ secrets.SASJS_PASSWORD }}"' ./cypress.json + cat ./cypress.json + echo "SASJS_USERNAME=${{ secrets.SASJS_USERNAME }}" + + sh ./sasjs-tests/sasjs-cypress-run.sh ${{ secrets.MATRIX_TOKEN }} https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}