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.1.6, 3.2.3, 2.4.2] 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 msys2: runs-on: windows-latest steps: - uses: actions/checkout@v2 - uses: msys2/setup-msys2@v2 with: msystem: MSYS install: gcc cmake make libuv-devel zlib-devel openssl-devel update: true - name: Build ttyd shell: msys2 {0} run: | ./scripts/msys2-build.sh cp /usr/bin/msys-2.0.dll build - uses: actions/upload-artifact@v2 with: name: ttyd.msys2 path: | build/ttyd.exe build/msys-2.0.dll