You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

build.yml 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. name: Build
  2. on: [push, pull_request]
  3. jobs:
  4. build-linux:
  5. runs-on: ubuntu-latest
  6. timeout-minutes: 10
  7. steps:
  8. - uses: actions/checkout@v4
  9. - name: Install dependencies
  10. run: |
  11. sudo apt-get update
  12. sudo apt-get install -y libfltk1.3-dev fluid gettext appstream
  13. sudo apt-get install -y libgnutls28-dev nettle-dev libgmp-dev
  14. sudo apt-get install -y libxtst-dev libxdamage-dev libxfixes-dev libxrandr-dev libpam-dev
  15. sudo apt-get install -y libavcodec-dev libavutil-dev libswscale-dev
  16. - name: Configure
  17. run: cmake -DCMAKE_BUILD_TYPE=Debug -S . -B build
  18. - name: Build
  19. working-directory: build
  20. run: make
  21. - name: Install
  22. working-directory: build
  23. run: make tarball
  24. - uses: actions/upload-artifact@v4
  25. with:
  26. name: Linux (Ubuntu)
  27. path: build/tigervnc-*.tar.gz
  28. build-windows:
  29. runs-on: windows-latest
  30. timeout-minutes: 20
  31. defaults:
  32. run:
  33. shell: msys2 {0}
  34. steps:
  35. - uses: actions/checkout@v4
  36. - uses: msys2/setup-msys2@v2
  37. - name: Install dependencies
  38. run: |
  39. pacman --sync --noconfirm --needed \
  40. make mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake
  41. pacman --sync --noconfirm --needed \
  42. mingw-w64-x86_64-fltk mingw-w64-x86_64-libjpeg-turbo \
  43. mingw-w64-x86_64-gnutls mingw-w64-x86_64-pixman \
  44. mingw-w64-x86_64-nettle mingw-w64-x86_64-gmp
  45. - name: Configure
  46. run: cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug -S . -B build
  47. - name: Build
  48. working-directory: build
  49. run: make
  50. - name: Install
  51. working-directory: build
  52. env:
  53. MSYS2_PATH_TYPE: inherit
  54. run: make installer winvnc_installer
  55. - uses: actions/upload-artifact@v4
  56. with:
  57. name: Windows
  58. path: build/release/tigervnc*.exe
  59. build-macos:
  60. runs-on: macos-latest
  61. timeout-minutes: 20
  62. steps:
  63. - uses: actions/checkout@v4
  64. - name: Install dependencies
  65. run: |
  66. brew install fltk pixman ffmpeg
  67. brew install gnutls nettle gmp
  68. - name: Configure
  69. run: cmake -DCMAKE_BUILD_TYPE=Debug -S . -B build
  70. - name: Build
  71. working-directory: build
  72. run: make
  73. - name: Install
  74. working-directory: build
  75. run: make dmg
  76. - uses: actions/upload-artifact@v4
  77. with:
  78. name: macOS
  79. path: build/TigerVNC-*.dmg
  80. build-java:
  81. runs-on: ubuntu-latest
  82. timeout-minutes: 5
  83. strategy:
  84. matrix:
  85. java: [ '8', '11', '16' ]
  86. steps:
  87. - uses: actions/checkout@v4
  88. - name: Setup java
  89. uses: actions/setup-java@v4
  90. with:
  91. distribution: 'temurin'
  92. java-version: ${{ matrix.java }}
  93. - name: Configure
  94. working-directory: java
  95. run: cmake -DCMAKE_BUILD_TYPE=Debug -S . -B build
  96. - name: Build
  97. working-directory: java/build
  98. run: make
  99. - uses: actions/upload-artifact@v4
  100. with:
  101. name: Java (${{ matrix.java }})
  102. path: java/build/VncViewer.jar
  103. build-packages:
  104. timeout-minutes: 20
  105. strategy:
  106. matrix:
  107. target:
  108. - centos7
  109. - rocky8
  110. - rocky9
  111. - bionic
  112. - focal
  113. - jammy
  114. fail-fast: false
  115. runs-on: ubuntu-latest
  116. env:
  117. DOCKER: ${{ matrix.target }}
  118. steps:
  119. - uses: actions/checkout@v4
  120. - name: Build image
  121. run: docker build -t tigervnc/$DOCKER .github/containers/$DOCKER
  122. - name: Build packages
  123. run: .github/containers/$DOCKER/build.sh
  124. - uses: actions/upload-artifact@v4
  125. with:
  126. name: Packages (${{ matrix.target }})
  127. path: .github/containers/${{ matrix.target }}/result