name: Build on: [push, pull_request] jobs: build-linux: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v4 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y libfltk1.3-dev fluid gettext appstream sudo apt-get install -y libpixman-1-dev libjpeg-turbo8-dev sudo apt-get install -y libgnutls28-dev nettle-dev libgmp-dev sudo apt-get install -y libxtst-dev libxdamage-dev libxfixes-dev libxrandr-dev libpam-dev sudo apt-get install -y libavcodec-dev libavutil-dev libswscale-dev - name: Configure run: cmake -DCMAKE_BUILD_TYPE=Debug -S . -B build - name: Build working-directory: build run: make - name: Install working-directory: build run: make tarball - uses: actions/upload-artifact@v4 with: name: Linux (Ubuntu) path: build/tigervnc-*.tar.gz build-windows: runs-on: windows-latest timeout-minutes: 20 defaults: run: shell: msys2 {0} steps: - uses: actions/checkout@v4 - uses: msys2/setup-msys2@v2 - name: Install dependencies run: | pacman --sync --noconfirm --needed \ make mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake pacman --sync --noconfirm --needed \ mingw-w64-x86_64-fltk mingw-w64-x86_64-libjpeg-turbo \ mingw-w64-x86_64-gnutls mingw-w64-x86_64-pixman \ mingw-w64-x86_64-nettle mingw-w64-x86_64-gmp - name: Configure run: cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug -S . -B build - name: Build working-directory: build run: make - name: Install working-directory: build env: MSYS2_PATH_TYPE: inherit run: make installer winvnc_installer - uses: actions/upload-artifact@v4 with: name: Windows path: build/release/tigervnc*.exe build-macos: runs-on: macos-latest timeout-minutes: 20 steps: - uses: actions/checkout@v4 - name: Install dependencies run: | brew install fltk pixman ffmpeg brew install gnutls nettle gmp - name: Configure run: cmake -DCMAKE_BUILD_TYPE=Debug -S . -B build - name: Build working-directory: build run: make - name: Install working-directory: build run: make dmg - uses: actions/upload-artifact@v4 with: name: macOS path: build/TigerVNC-*.dmg build-java: runs-on: ubuntu-latest timeout-minutes: 5 strategy: matrix: java: [ '8', '11', '17', '21' ] steps: - uses: actions/checkout@v4 - name: Setup java uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: ${{ matrix.java }} - name: Configure working-directory: java run: cmake -DCMAKE_BUILD_TYPE=Debug -S . -B build - name: Build working-directory: java/build run: make - uses: actions/upload-artifact@v4 with: name: Java (${{ matrix.java }}) path: java/build/VncViewer.jar build-packages: timeout-minutes: 20 strategy: matrix: target: - rocky8 - rocky9 - focal - jammy - noble fail-fast: false runs-on: ubuntu-latest env: DOCKER: ${{ matrix.target }} steps: - uses: actions/checkout@v4 - name: Build image run: docker build -t tigervnc/$DOCKER .github/containers/$DOCKER - name: Build packages run: .github/containers/$DOCKER/build.sh - uses: actions/upload-artifact@v4 with: name: Packages (${{ matrix.target }}) path: .github/containers/${{ matrix.target }}/result