# 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 on: pull_request: jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: [lts/fermium] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: npm - name: Check npm audit run: npm audit --production --audit-level=low - name: Install Dependencies run: npm ci - name: Check code style run: npm run lint - name: Run unit tests run: npm test # - name: Build Package # run: npm run package:lib # env: # CI: true # - name: Install SSH Key # uses: shimataro/ssh-key-action@v2 # with: # key: ${{ secrets.DCGITLAB_KEY }} # known_hosts: 'placeholder' # - 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: 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-focal.list # sudo apt update # sudo apt install openvpn3=16~beta+focal # - name: Start Open VPN 3 # run: openvpn3 session-start --config .github/vpn/config.ovpn # - 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='"userName".*' --replacement='"userName":"${{ secrets.SASJS_USERNAME }}",' ./public/config.json # replace-in-files --regex='"password".*' --replacement='"password":"${{ secrets.SASJS_PASSWORD }}",' ./public/config.json # replace-in-files --regex='"serverType".*' --replacement='"serverType":"SASJS",' ./public/config.json # npm run update:adapter && npm run build # scp -o stricthostkeychecking=no -r ./build/* ${{ secrets.DCGITLAB_DEPLOY_PATH_VIYA }} # - name: Run cypress on sasjs # run: | # replace-in-files --regex='"sasjsTestsUrl".*' --replacement='"sasjsTestsUrl":"${{ secrets.SASJS_TEST_URL_VIYA }}",' ./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 # sh ./sasjs-cypress-run.sh ${{ secrets.DISCORD_WEBHOOK }} https://github.com/${{github.repository}}/actions/runs/${{github.run_id}} - name: Generate coverage report uses: artiomtr/jest-coverage-report-action@v2.0-rc.2 with: github-token: ${{ secrets.GITHUB_TOKEN }} - name: Test run: | pwd ls