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: 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@v2 - name: Build ttyd run: | cmake -DCMAKE_BUILD_TYPE=RELEASE . make && sudo make install ttyd -v cross: runs-on: ubuntu-20.04 strategy: matrix: target: [i686, x86_64, arm, armhf, aarch64, mips, mipsel, mips64, mips64el, s390x] steps: - uses: actions/checkout@v2 - 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@v2 with: name: ttyd.${{ matrix.target }} path: build/ttyd win10: runs-on: windows-latest steps: - uses: actions/checkout@v2 - uses: msys2/setup-msys2@v2 with: msystem: MINGW64 install: >- base-devel subversion mingw64/mingw-w64-x86_64-gcc mingw64/mingw-w64-x86_64-cmake mingw64/mingw-w64-x86_64-zlib mingw64/mingw-w64-x86_64-libuv mingw64/mingw-w64-x86_64-mbedtls mingw64/mingw-w64-x86_64-json-c update: true - name: Build ttyd shell: msys2 {0} run: ./scripts/mingw-build.sh - uses: actions/upload-artifact@v2 with: name: ttyd.win10 path: build/ttyd.exe