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.7KB

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