mirror of
https://github.com/sasjs/adapter.git
synced 2025-12-10 17:04:36 +00:00
109 lines
4.2 KiB
YAML
109 lines
4.2 KiB
YAML
# 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: |
|
|
sudo apt install jq
|
|
cd sasjs-tests
|
|
jq '.dependencies."@sasjs/adapter" |= "latest"' ./package.json > ./package.temp && mv ./package.temp ./package.json
|
|
npm i
|
|
jq '.sasJsConfig.serverUrl |= "${{ secrets.SASJS_SERVER_URL }}"' ./public/config.json > ./public/config.temp && mv ./public/config.temp ./public/config.json
|
|
jq '.sasJsConfig.serverType |= "SASJS"' ./public/config.json > ./public/config.temp && mv ./public/config.temp ./public/config.json
|
|
jq '.userName |= "${{ secrets.SASJS_USERNAME }}"' ./public/config.json > ./public/config.temp && mv ./public/config.temp ./public/config.json
|
|
jq '.password |= "${{ secrets.SASJS_PASSWORD }}"' ./public/config.json > ./public/config.temp && mv ./public/config.temp ./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: |
|
|
jq '.env.sasjsTestsUrl |= "http://localhost:3000"' ./cypress.json > ./cypress.temp && mv ./cypress.temp ./cypress.json
|
|
jq '.env.username |= "${{ secrets.SASJS_USERNAME }}"' ./cypress.json > ./cypress.temp && mv ./cypress.temp ./cypress.json
|
|
jq '.env.password |= "${{ secrets.SASJS_PASSWORD }}"' ./cypress.json > ./cypress.temp && mv ./cypress.temp ./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}}
|