Skip to content

Live test

Live test #229

Workflow file for this run

name: Live test
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
push:
paths:
- ".github/workflows/live-test.yaml"
env:
HOSTNAME: mqtt.nordicsemi.academy
jobs:
# Ensures that the TLS certificate can be fetched
fetch-cert:
runs-on: ubuntu-latest
strategy:
matrix:
protocol: [http, https]
steps:
- name: fetch TLS certificate
run: curl --fail-with-body -v ${{ matrix.protocol }}://${{ env.HOSTNAME }}/${{ env.HOSTNAME }}.pem
live-test:
runs-on: ubuntu-latest
strategy:
matrix:
ipv: [ipv4, ipv6]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20.x"
- name: Keep npm cache around to speed up installs
uses: actions/cache@v4
with:
path: ~/.npm
key: build-${{ hashFiles('**/package-lock.json') }}
- name: Install dependencies
run: npm ci --no-audit
- name: Set up WARP (for IPv6)
if: matrix.ipv == 'ipv6'
uses: fscarmen/[email protected]
- name: fetch TLS certificate
run: curl --fail-with-body -v https://${{ env.HOSTNAME }}/${{ env.HOSTNAME }}.pem > ${{ github.workspace }}/${{ env.HOSTNAME }}.pem
- name: Run tests
env:
IPV: ${{ matrix.ipv }}
HOSTNAME: ${{ env.HOSTNAME }}
CERT_PATH: ${{ github.workspace }}/${{ env.HOSTNAME }}.pem
run: npx tsx --test test.ts
website:
runs-on: ubuntu-latest
strategy:
matrix:
protocol: [http, https]
steps:
- uses: actions/checkout@v4
- name: ${{ matrix.protocol }}
run: |
curl -L --fail-with-body -v ${{ matrix.protocol }}://${{ env.HOSTNAME }}/ > ${{ matrix.protocol }}.html
diff ${{ matrix.protocol }}.html docs/index.html
certificate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npx tsx check-certificate-expiry.ts