# GitHub Actions workflow to run for Emscripten. name: "Emscripten" on: push: {} pull_request: {} schedule: - cron: "0 0 * * *" # At 00:00 daily. concurrency: group: "${{ github.workflow }}-${{ github.ref }}" cancel-in-progress: true jobs: test: name: "Emscripten" runs-on: "ubuntu-24.04" if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }} permissions: contents: read steps: - name: "Checkout repository" uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: "Install test dependencies" run: | sudo apt-get update sudo apt-get install -y libio-socket-ssl-perl perl -MIO::Socket::SSL::Utils -e 1 - name: "Setup emsdk" uses: mymindstorm/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16 with: version: "3.1.60" - name: "Prepare repository" run: ./autogen.sh - name: "Configure CMake" run: emcmake cmake -Bbuild - name: "Build" run: cmake --build build --config Release --parallel 4 - name: "Test" run: ctest --test-dir build -C Release --output-on-failure # Test ASAN with and without ASM enabled. test-asan: name: "ASAN (no-asm)" runs-on: "ubuntu-24.04" if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }} permissions: contents: read steps: - name: "Checkout repository" uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: "Install test dependencies" run: | sudo apt-get update sudo apt-get install -y libio-socket-ssl-perl perl -MIO::Socket::SSL::Utils -e 1 - name: "Setup emsdk" uses: mymindstorm/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16 with: version: "3.1.60" - name: "Prepare repository" run: ./autogen.sh - name: "Configure CMake" run: emcmake cmake -Bbuild env: CFLAGS: "-gsource-map -fsanitize=address" LDFLAGS: "-fsanitize=address" - name: "Build" run: cmake --build build --config Release --parallel 4 - name: "Test" run: ctest --test-dir build -C Release --output-on-failure