name: backend on: push: paths: - ".github/workflows/backend.yml" - "CMakeLists.txt" - "src/*" - "scripts/*" pull_request: paths: - ".github/workflows/backend.yml" - "CMakeLists.txt" - "src/*" - "scripts/*" jobs: build: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: lws-version: [4.3.2, 3.2.3] steps: - name: Install packages run: | sudo apt-get update sudo apt-get install build-essential cmake libjson-c-dev zlib1g-dev libssl-dev libuv1-dev - name: Install libwebsockets-${{ matrix.lws-version }} env: LWS_VERSION: ${{ matrix.lws-version }} run: | cd $(mktemp -d) curl -sLo- https://github.com/warmcat/libwebsockets/archive/v${LWS_VERSION}.tar.gz | tar xz cd libwebsockets-${LWS_VERSION} cmake -DLWS_WITH_LIBUV=ON -DLWS_UNIX_SOCK=ON -DLWS_IPV6=ON -DLWS_WITHOUT_TESTAPPS=ON -DCMAKE_BUILD_TYPE=RELEASE . make && sudo make install && sudo ldconfig - uses: actions/checkout@v3 - name: Build ttyd run: | cmake -DCMAKE_BUILD_TYPE=RELEASE . make && sudo make install ttyd -v cross: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: target: [i686, x86_64, arm, armhf, aarch64, mips, mipsel, mips64, mips64el, s390x, win32] steps: - uses: actions/checkout@v3 - name: Install packages run: | sudo apt-get update sudo apt-get install -y autoconf automake build-essential cmake curl file libtool - name: Cross build (${{ matrix.target }}) env: BUILD_TARGET: ${{ matrix.target }} run: ./scripts/cross-build.sh - uses: actions/upload-artifact@v3 with: name: ttyd.${{ matrix.target }} path: build/ttyd*