unstable.yml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. name: Unstable Build
  2. on:
  3. schedule:
  4. - cron: "0 6 * * *"
  5. workflow_dispatch:
  6. jobs:
  7. version:
  8. runs-on: ubuntu-latest
  9. outputs:
  10. base: unstable
  11. date: unstable-${{ steps.date.outputs.date }}
  12. prosody_version: prosody-${{ steps.prosody_version.outputs.version }}
  13. jicofo_version: jicofo-${{ steps.jicofo_version.outputs.version }}
  14. web_version: web-${{ steps.web_version.outputs.version }}
  15. jvb_version: jvb-${{ steps.jvb_version.outputs.version }}
  16. jibri_version: jibri-${{ steps.jibri_version.outputs.version }}
  17. jigasi_version: jigasi-${{ steps.jigasi_version.outputs.version }}
  18. steps:
  19. - name: Get current date
  20. id: date
  21. run: echo "date=$(date +%F)">> $GITHUB_OUTPUT
  22. - name: Prosody gpg key
  23. id: prosody_gpg_key
  24. run: curl --location --silent --show-error https://prosody.im/files/prosody-debian-packages.key | sudo dd of=/etc/apt/trusted.gpg.d/prosody.gpg
  25. - name: Prosody repo
  26. uses: myci-actions/add-deb-repo@11
  27. with:
  28. repo: deb https://packages.prosody.im/debian bookworm main
  29. repo-name: prosody
  30. keys-asc: https://prosody.im/files/prosody-debian-packages.key
  31. - name: Jitsi repo
  32. uses: myci-actions/add-deb-repo@11
  33. with:
  34. repo: deb https://download.jitsi.org/ unstable/
  35. repo-name: jitsi
  36. keys-asc: https://download.jitsi.org/jitsi-key.gpg.key
  37. - name: Get current jicofo versions
  38. id: jicofo_version
  39. run: echo "version=$( apt-cache show jitsi-meet | head -10 | grep '^Depends:' | tr ',' '\n' | grep jicofo | cut -d'=' -f2 | tr -d ')' | awk '{print $1}' )" >> $GITHUB_OUTPUT
  40. - name: Get current jitsi-meet-web versions
  41. id: web_version
  42. run: echo "version=$( apt-cache show jitsi-meet | head -10 | grep '^Depends:' | tr ',' '\n' | grep 'jitsi-meet-web ' | cut -d'=' -f2 | tr -d ')' | awk '{print $1}' )" >> $GITHUB_OUTPUT
  43. - name: Get current jvb versions
  44. id: jvb_version
  45. run: echo "version=$( apt-cache show jitsi-meet | head -10 | grep '^Pre-Depends:'| tr ',' '\n' | grep 'jitsi-videobridge2' | cut -d'=' -f2 | tr -d ')' | awk '{print $1}' )" >> $GITHUB_OUTPUT
  46. - name: Get current prosody versions
  47. id: prosody_version
  48. run: echo "version=$( apt-cache madison prosody | awk '{print $3;}' | head -1 | cut -d'-' -f1 )" >> $GITHUB_OUTPUT
  49. - name: Get current jibri version
  50. id: jibri_version
  51. run: echo "version=$( apt-cache show jibri | head -10 | grep Version | awk '{print $2}' )" >> $GITHUB_OUTPUT
  52. - name: Get current jigasi version
  53. id: jigasi_version
  54. run: echo "version=$( apt-cache show jigasi | head -10 | grep Version | awk '{print $2}' )" >> $GITHUB_OUTPUT
  55. base:
  56. runs-on: ubuntu-latest
  57. needs: version
  58. steps:
  59. - name: Check out code
  60. uses: actions/checkout@v3
  61. - name: Set up QEMU
  62. uses: docker/setup-qemu-action@v1
  63. with:
  64. platforms: linux/amd64,linux/arm64
  65. - name: Setup Docker Buildx
  66. uses: docker/setup-buildx-action@v1
  67. - name: Login to DockerHub
  68. uses: docker/login-action@v1
  69. with:
  70. username: ${{ secrets.DOCKERHUB_USERNAME }}
  71. password: ${{ secrets.DOCKERHUB_TOKEN }}
  72. - name: Build and push
  73. uses: docker/build-push-action@v2
  74. with:
  75. push: true
  76. context: ./base
  77. tags: |
  78. ${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.base }}
  79. ${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.date }}
  80. build-args: |
  81. JITSI_RELEASE=unstable
  82. platforms: linux/amd64,linux/arm64
  83. cache-from: type=gha
  84. cache-to: type=gha,mode=max
  85. base-java:
  86. runs-on: ubuntu-latest
  87. needs: [version, base]
  88. steps:
  89. - name: Check out code
  90. uses: actions/checkout@v3
  91. - name: Set up QEMU
  92. uses: docker/setup-qemu-action@v1
  93. with:
  94. platforms: linux/amd64,linux/arm64
  95. - name: Setup Docker Buildx
  96. uses: docker/setup-buildx-action@v1
  97. - name: Login to DockerHub
  98. uses: docker/login-action@v1
  99. with:
  100. username: ${{ secrets.DOCKERHUB_USERNAME }}
  101. password: ${{ secrets.DOCKERHUB_TOKEN }}
  102. - name: Build and push
  103. uses: docker/build-push-action@v2
  104. with:
  105. push: true
  106. context: ./base-java
  107. tags: |
  108. ${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.base }}
  109. ${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.date }}
  110. build-args: |
  111. JITSI_REPO=${{ secrets.JITSI_REPO }}
  112. BASE_TAG=${{ needs.version.outputs.base }}
  113. platforms: linux/amd64,linux/arm64
  114. cache-from: type=gha
  115. cache-to: type=gha,mode=max
  116. jibri:
  117. runs-on: ubuntu-latest
  118. needs: [version, base-java]
  119. steps:
  120. - name: Check out code
  121. uses: actions/checkout@v3
  122. - name: Set up QEMU
  123. uses: docker/setup-qemu-action@v1
  124. with:
  125. platforms: linux/amd64,linux/arm64
  126. - name: Setup Docker Buildx
  127. uses: docker/setup-buildx-action@v1
  128. - name: Login to DockerHub
  129. uses: docker/login-action@v1
  130. with:
  131. username: ${{ secrets.DOCKERHUB_USERNAME }}
  132. password: ${{ secrets.DOCKERHUB_TOKEN }}
  133. - name: Build and push
  134. uses: docker/build-push-action@v2
  135. with:
  136. push: true
  137. context: ./jibri
  138. tags: |
  139. ${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.base }}
  140. ${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.date }}
  141. ${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.jibri_version }}
  142. build-args: |
  143. JITSI_REPO=${{ secrets.JITSI_REPO }}
  144. BASE_TAG=${{ needs.version.outputs.base }}
  145. platforms: linux/amd64,linux/arm64
  146. cache-from: type=gha
  147. cache-to: type=gha,mode=max
  148. jicofo:
  149. runs-on: ubuntu-latest
  150. needs: [version, base-java]
  151. steps:
  152. - name: Check out code
  153. uses: actions/checkout@v3
  154. - name: Set up QEMU
  155. uses: docker/setup-qemu-action@v1
  156. with:
  157. platforms: linux/amd64,linux/arm64
  158. - name: Setup Docker Buildx
  159. uses: docker/setup-buildx-action@v1
  160. - name: Login to DockerHub
  161. uses: docker/login-action@v1
  162. with:
  163. username: ${{ secrets.DOCKERHUB_USERNAME }}
  164. password: ${{ secrets.DOCKERHUB_TOKEN }}
  165. - name: Build and push
  166. uses: docker/build-push-action@v2
  167. with:
  168. push: true
  169. context: ./jicofo
  170. tags: |
  171. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.base }}
  172. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.date }}
  173. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.jicofo_version }}
  174. build-args: |
  175. JITSI_REPO=${{ secrets.JITSI_REPO }}
  176. BASE_TAG=${{ needs.version.outputs.base }}
  177. platforms: linux/amd64,linux/arm64
  178. cache-from: type=gha
  179. cache-to: type=gha,mode=max
  180. jigasi:
  181. runs-on: ubuntu-latest
  182. needs: [version, base-java]
  183. steps:
  184. - name: Check out code
  185. uses: actions/checkout@v3
  186. - name: Set up QEMU
  187. uses: docker/setup-qemu-action@v1
  188. with:
  189. platforms: linux/amd64,linux/arm64
  190. - name: Setup Docker Buildx
  191. uses: docker/setup-buildx-action@v1
  192. - name: Login to DockerHub
  193. uses: docker/login-action@v1
  194. with:
  195. username: ${{ secrets.DOCKERHUB_USERNAME }}
  196. password: ${{ secrets.DOCKERHUB_TOKEN }}
  197. - name: Build and push
  198. uses: docker/build-push-action@v2
  199. with:
  200. push: true
  201. context: ./jigasi
  202. tags: |
  203. ${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.base }}
  204. ${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.date }}
  205. ${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.jigasi_version }}
  206. build-args: |
  207. JITSI_REPO=${{ secrets.JITSI_REPO }}
  208. BASE_TAG=${{ needs.version.outputs.base }}
  209. platforms: linux/amd64,linux/arm64
  210. cache-from: type=gha
  211. cache-to: type=gha,mode=max
  212. jvb:
  213. runs-on: ubuntu-latest
  214. needs: [version, base-java]
  215. steps:
  216. - name: Check out code
  217. uses: actions/checkout@v3
  218. - name: Set up QEMU
  219. uses: docker/setup-qemu-action@v1
  220. with:
  221. platforms: linux/amd64,linux/arm64
  222. - name: Setup Docker Buildx
  223. uses: docker/setup-buildx-action@v1
  224. - name: Login to DockerHub
  225. uses: docker/login-action@v1
  226. with:
  227. username: ${{ secrets.DOCKERHUB_USERNAME }}
  228. password: ${{ secrets.DOCKERHUB_TOKEN }}
  229. - name: Build and push
  230. uses: docker/build-push-action@v2
  231. with:
  232. push: true
  233. context: ./jvb
  234. tags: |
  235. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.base }}
  236. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.date }}
  237. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.jvb_version }}
  238. build-args: |
  239. JITSI_REPO=${{ secrets.JITSI_REPO }}
  240. BASE_TAG=${{ needs.version.outputs.base }}
  241. platforms: linux/amd64,linux/arm64
  242. cache-from: type=gha
  243. cache-to: type=gha,mode=max
  244. prosody:
  245. runs-on: ubuntu-latest
  246. needs: [version, base]
  247. steps:
  248. - name: Check out code
  249. uses: actions/checkout@v3
  250. - name: Set up QEMU
  251. uses: docker/setup-qemu-action@v1
  252. with:
  253. platforms: linux/amd64,linux/arm64
  254. - name: Setup Docker Buildx
  255. uses: docker/setup-buildx-action@v1
  256. - name: Login to DockerHub
  257. uses: docker/login-action@v1
  258. with:
  259. username: ${{ secrets.DOCKERHUB_USERNAME }}
  260. password: ${{ secrets.DOCKERHUB_TOKEN }}
  261. - name: Build and push
  262. uses: docker/build-push-action@v2
  263. with:
  264. push: true
  265. context: ./prosody
  266. tags: |
  267. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.base }}
  268. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.date }}
  269. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.prosody_version }}
  270. build-args: |
  271. JITSI_REPO=${{ secrets.JITSI_REPO }}
  272. BASE_TAG=${{ needs.version.outputs.base }}
  273. platforms: linux/amd64,linux/arm64
  274. cache-from: type=gha
  275. cache-to: type=gha,mode=max
  276. web:
  277. runs-on: ubuntu-latest
  278. needs: [version, base]
  279. steps:
  280. - name: Check out code
  281. uses: actions/checkout@v3
  282. - name: Set up QEMU
  283. uses: docker/setup-qemu-action@v1
  284. with:
  285. platforms: linux/amd64,linux/arm64
  286. - name: Setup Docker Buildx
  287. uses: docker/setup-buildx-action@v1
  288. - name: Login to DockerHub
  289. uses: docker/login-action@v1
  290. with:
  291. username: ${{ secrets.DOCKERHUB_USERNAME }}
  292. password: ${{ secrets.DOCKERHUB_TOKEN }}
  293. - name: Build and push
  294. uses: docker/build-push-action@v2
  295. with:
  296. push: true
  297. context: ./web
  298. tags: |
  299. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.base }}
  300. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.date }}
  301. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.web_version }}
  302. build-args: |
  303. JITSI_REPO=${{ secrets.JITSI_REPO }}
  304. BASE_TAG=${{ needs.version.outputs.base }}
  305. platforms: linux/amd64,linux/arm64
  306. cache-from: type=gha
  307. cache-to: type=gha,mode=max