unstable.yml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485
  1. name: Unstable Build
  2. on:
  3. schedule:
  4. - cron: "0 5 * * *"
  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 dsa1024 key support
  26. run: echo -e "[hash_algorithms]\nsha1.second_preimage_resistance = \"always\"\n\n[asymmetric_algorithms]\ndsa1024 = \"always\"\n" > /etc/crypto-policies/back-ends/apt-sequoia.config
  27. - name: Prosody repo
  28. uses: myci-actions/add-deb-repo@11
  29. with:
  30. repo: deb https://packages.prosody.im/debian bookworm main
  31. repo-name: prosody
  32. keys-asc: https://prosody.im/files/prosody-debian-packages.key
  33. - name: Jitsi repo
  34. uses: myci-actions/add-deb-repo@11
  35. with:
  36. repo: deb https://download.jitsi.org/ unstable/
  37. repo-name: jitsi
  38. keys-asc: https://download.jitsi.org/jitsi-key.gpg.key
  39. - name: Get current jicofo versions
  40. id: jicofo_version
  41. 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
  42. - name: Get current jitsi-meet-web versions
  43. id: web_version
  44. 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
  45. - name: Get current jvb versions
  46. id: jvb_version
  47. 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
  48. - name: Get current prosody versions
  49. id: prosody_version
  50. run: echo "version=$( apt-cache madison prosody | awk '{print $3;}' | head -1 | cut -d'-' -f1 )" >> $GITHUB_OUTPUT
  51. - name: Get current jibri version
  52. id: jibri_version
  53. run: echo "version=$( apt-cache show jibri | head -10 | grep Version | awk '{print $2}' )" >> $GITHUB_OUTPUT
  54. - name: Get current jigasi version
  55. id: jigasi_version
  56. run: echo "version=$( apt-cache show jigasi | head -10 | grep Version | awk '{print $2}' )" >> $GITHUB_OUTPUT
  57. base-arch:
  58. runs-on: ${{ matrix.config.os }}
  59. strategy:
  60. fail-fast: false
  61. matrix:
  62. config:
  63. - { os: ubuntu-24.04, arch: amd64 }
  64. - { os: ubuntu-24.04-arm, arch: arm64 }
  65. needs: version
  66. steps:
  67. - name: Check out code
  68. uses: actions/checkout@v4
  69. - name: Setup Docker Buildx
  70. uses: docker/setup-buildx-action@v3
  71. with:
  72. driver: docker
  73. - name: Login to DockerHub
  74. uses: docker/login-action@v3
  75. with:
  76. username: ${{ secrets.DOCKERHUB_USERNAME }}
  77. password: ${{ secrets.DOCKERHUB_TOKEN }}
  78. - name: Build and push
  79. uses: docker/build-push-action@v6
  80. with:
  81. push: true
  82. context: ./base
  83. tags: |
  84. ${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
  85. ${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
  86. build-args: |
  87. JITSI_RELEASE=unstable
  88. base:
  89. runs-on: ubuntu-latest
  90. needs: [version, base-arch]
  91. steps:
  92. - name: Login to DockerHub
  93. uses: docker/login-action@v3
  94. with:
  95. username: ${{ secrets.DOCKERHUB_USERNAME }}
  96. password: ${{ secrets.DOCKERHUB_TOKEN }}
  97. - name: Create Docker Manifest
  98. uses: int128/docker-manifest-create-action@v2
  99. with:
  100. tags: |
  101. ${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.base }}
  102. ${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.date }}
  103. sources: |
  104. ${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.base }}-amd64
  105. ${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.base }}-arm64
  106. base-java-arch:
  107. runs-on: ${{ matrix.config.os }}
  108. strategy:
  109. fail-fast: false
  110. matrix:
  111. config:
  112. - { os: ubuntu-24.04, arch: amd64 }
  113. - { os: ubuntu-24.04-arm, arch: arm64 }
  114. needs: [version, base]
  115. steps:
  116. - name: Check out code
  117. uses: actions/checkout@v4
  118. - name: Setup Docker Buildx
  119. uses: docker/setup-buildx-action@v3
  120. with:
  121. driver: docker
  122. - name: Login to DockerHub
  123. uses: docker/login-action@v3
  124. with:
  125. username: ${{ secrets.DOCKERHUB_USERNAME }}
  126. password: ${{ secrets.DOCKERHUB_TOKEN }}
  127. - name: Build and push
  128. uses: docker/build-push-action@v6
  129. with:
  130. push: true
  131. context: ./base-java
  132. tags: |
  133. ${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
  134. ${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
  135. build-args: |
  136. JITSI_REPO=${{ secrets.JITSI_REPO }}
  137. BASE_TAG=${{ needs.version.outputs.base }}
  138. base-java:
  139. runs-on: ubuntu-latest
  140. needs: [version, base-java-arch]
  141. steps:
  142. - name: Login to DockerHub
  143. uses: docker/login-action@v3
  144. with:
  145. username: ${{ secrets.DOCKERHUB_USERNAME }}
  146. password: ${{ secrets.DOCKERHUB_TOKEN }}
  147. - name: Create Docker Manifest
  148. uses: int128/docker-manifest-create-action@v2
  149. with:
  150. tags: |
  151. ${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.base }}
  152. ${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.date }}
  153. sources: |
  154. ${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.base }}-amd64
  155. ${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.base }}-arm64
  156. jibri-arch:
  157. runs-on: ${{ matrix.config.os }}
  158. strategy:
  159. fail-fast: false
  160. matrix:
  161. config:
  162. - { os: ubuntu-24.04, arch: amd64 }
  163. - { os: ubuntu-24.04-arm, arch: arm64 }
  164. needs: [version, base-java]
  165. steps:
  166. - name: Check out code
  167. uses: actions/checkout@v4
  168. - name: Setup Docker Buildx
  169. uses: docker/setup-buildx-action@v3
  170. with:
  171. driver: docker
  172. - name: Login to DockerHub
  173. uses: docker/login-action@v3
  174. with:
  175. username: ${{ secrets.DOCKERHUB_USERNAME }}
  176. password: ${{ secrets.DOCKERHUB_TOKEN }}
  177. - name: Build and push
  178. uses: docker/build-push-action@v6
  179. with:
  180. push: true
  181. context: ./jibri
  182. tags: |
  183. ${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
  184. ${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
  185. ${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.jibri_version }}-${{ matrix.config.arch }}
  186. build-args: |
  187. JITSI_REPO=${{ secrets.JITSI_REPO }}
  188. BASE_TAG=${{ needs.version.outputs.base }}
  189. jibri:
  190. runs-on: ubuntu-latest
  191. needs: [version, jibri-arch]
  192. steps:
  193. - name: Login to DockerHub
  194. uses: docker/login-action@v3
  195. with:
  196. username: ${{ secrets.DOCKERHUB_USERNAME }}
  197. password: ${{ secrets.DOCKERHUB_TOKEN }}
  198. - name: Create Docker Manifest
  199. uses: int128/docker-manifest-create-action@v2
  200. with:
  201. tags: |
  202. ${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.base }}
  203. ${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.date }}
  204. ${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.jibri_version }}
  205. sources: |
  206. ${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.base }}-amd64
  207. ${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.base }}-arm64
  208. jicofo-arch:
  209. runs-on: ${{ matrix.config.os }}
  210. strategy:
  211. fail-fast: false
  212. matrix:
  213. config:
  214. - { os: ubuntu-24.04, arch: amd64 }
  215. - { os: ubuntu-24.04-arm, arch: arm64 }
  216. needs: [version, base-java]
  217. steps:
  218. - name: Check out code
  219. uses: actions/checkout@v4
  220. - name: Setup Docker Buildx
  221. uses: docker/setup-buildx-action@v3
  222. with:
  223. driver: docker
  224. - name: Login to DockerHub
  225. uses: docker/login-action@v3
  226. with:
  227. username: ${{ secrets.DOCKERHUB_USERNAME }}
  228. password: ${{ secrets.DOCKERHUB_TOKEN }}
  229. - name: Build and push
  230. uses: docker/build-push-action@v6
  231. with:
  232. push: true
  233. context: ./jicofo
  234. tags: |
  235. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
  236. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
  237. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.jicofo_version }}-${{ matrix.config.arch }}
  238. build-args: |
  239. JITSI_REPO=${{ secrets.JITSI_REPO }}
  240. BASE_TAG=${{ needs.version.outputs.base }}
  241. jicofo:
  242. runs-on: ubuntu-latest
  243. needs: [version, jicofo-arch]
  244. steps:
  245. - name: Login to DockerHub
  246. uses: docker/login-action@v3
  247. with:
  248. username: ${{ secrets.DOCKERHUB_USERNAME }}
  249. password: ${{ secrets.DOCKERHUB_TOKEN }}
  250. - name: Create Docker Manifest
  251. uses: int128/docker-manifest-create-action@v2
  252. with:
  253. tags: |
  254. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.base }}
  255. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.date }}
  256. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.jicofo_version }}
  257. sources: |
  258. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.base }}-amd64
  259. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.base }}-arm64
  260. jigasi-arch:
  261. runs-on: ${{ matrix.config.os }}
  262. strategy:
  263. fail-fast: false
  264. matrix:
  265. config:
  266. - { os: ubuntu-24.04, arch: amd64 }
  267. - { os: ubuntu-24.04-arm, arch: arm64 }
  268. needs: [version, base-java]
  269. steps:
  270. - name: Check out code
  271. uses: actions/checkout@v4
  272. - name: Setup Docker Buildx
  273. uses: docker/setup-buildx-action@v3
  274. with:
  275. driver: docker
  276. - name: Login to DockerHub
  277. uses: docker/login-action@v3
  278. with:
  279. username: ${{ secrets.DOCKERHUB_USERNAME }}
  280. password: ${{ secrets.DOCKERHUB_TOKEN }}
  281. - name: Build and push
  282. uses: docker/build-push-action@v6
  283. with:
  284. push: true
  285. context: ./jigasi
  286. tags: |
  287. ${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
  288. ${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
  289. ${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.jigasi_version }}-${{ matrix.config.arch }}
  290. build-args: |
  291. JITSI_REPO=${{ secrets.JITSI_REPO }}
  292. BASE_TAG=${{ needs.version.outputs.base }}
  293. jigasi:
  294. runs-on: ubuntu-latest
  295. needs: [version, jigasi-arch]
  296. steps:
  297. - name: Login to DockerHub
  298. uses: docker/login-action@v3
  299. with:
  300. username: ${{ secrets.DOCKERHUB_USERNAME }}
  301. password: ${{ secrets.DOCKERHUB_TOKEN }}
  302. - name: Create Docker Manifest
  303. uses: int128/docker-manifest-create-action@v2
  304. with:
  305. tags: |
  306. ${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.base }}
  307. ${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.date }}
  308. ${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.jigasi_version }}
  309. sources: |
  310. ${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.base }}-amd64
  311. ${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.base }}-arm64
  312. jvb-arch:
  313. runs-on: ${{ matrix.config.os }}
  314. strategy:
  315. fail-fast: false
  316. matrix:
  317. config:
  318. - { os: ubuntu-24.04, arch: amd64 }
  319. - { os: ubuntu-24.04-arm, arch: arm64 }
  320. needs: [version, base-java]
  321. steps:
  322. - name: Check out code
  323. uses: actions/checkout@v4
  324. - name: Setup Docker Buildx
  325. uses: docker/setup-buildx-action@v3
  326. with:
  327. driver: docker
  328. - name: Login to DockerHub
  329. uses: docker/login-action@v3
  330. with:
  331. username: ${{ secrets.DOCKERHUB_USERNAME }}
  332. password: ${{ secrets.DOCKERHUB_TOKEN }}
  333. - name: Build and push
  334. uses: docker/build-push-action@v6
  335. with:
  336. push: true
  337. context: ./jvb
  338. tags: |
  339. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
  340. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
  341. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.jvb_version }}-${{ matrix.config.arch }}
  342. build-args: |
  343. JITSI_REPO=${{ secrets.JITSI_REPO }}
  344. BASE_TAG=${{ needs.version.outputs.base }}
  345. jvb:
  346. runs-on: ubuntu-latest
  347. needs: [version, jvb-arch]
  348. steps:
  349. - name: Login to DockerHub
  350. uses: docker/login-action@v3
  351. with:
  352. username: ${{ secrets.DOCKERHUB_USERNAME }}
  353. password: ${{ secrets.DOCKERHUB_TOKEN }}
  354. - name: Create Docker Manifest
  355. uses: int128/docker-manifest-create-action@v2
  356. with:
  357. tags: |
  358. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.base }}
  359. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.date }}
  360. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.jvb_version }}
  361. sources: |
  362. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.base }}-amd64
  363. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.base }}-arm64
  364. prosody-arch:
  365. runs-on: ${{ matrix.config.os }}
  366. strategy:
  367. fail-fast: false
  368. matrix:
  369. config:
  370. - { os: ubuntu-24.04, arch: amd64 }
  371. - { os: ubuntu-24.04-arm, arch: arm64 }
  372. needs: [version, base]
  373. steps:
  374. - name: Check out code
  375. uses: actions/checkout@v4
  376. - name: Setup Docker Buildx
  377. uses: docker/setup-buildx-action@v3
  378. with:
  379. driver: docker
  380. - name: Login to DockerHub
  381. uses: docker/login-action@v3
  382. with:
  383. username: ${{ secrets.DOCKERHUB_USERNAME }}
  384. password: ${{ secrets.DOCKERHUB_TOKEN }}
  385. - name: Build and push
  386. uses: docker/build-push-action@v6
  387. with:
  388. push: true
  389. context: ./prosody
  390. tags: |
  391. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
  392. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
  393. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.prosody_version }}-${{ matrix.config.arch }}
  394. build-args: |
  395. JITSI_REPO=${{ secrets.JITSI_REPO }}
  396. BASE_TAG=${{ needs.version.outputs.base }}
  397. prosody:
  398. runs-on: ubuntu-latest
  399. needs: [version, prosody-arch]
  400. steps:
  401. - name: Login to DockerHub
  402. uses: docker/login-action@v3
  403. with:
  404. username: ${{ secrets.DOCKERHUB_USERNAME }}
  405. password: ${{ secrets.DOCKERHUB_TOKEN }}
  406. - name: Create Docker Manifest
  407. uses: int128/docker-manifest-create-action@v2
  408. with:
  409. tags: |
  410. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.base }}
  411. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.date }}
  412. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.prosody_version }}
  413. sources: |
  414. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.base }}-amd64
  415. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.base }}-arm64
  416. web-arch:
  417. runs-on: ${{ matrix.config.os }}
  418. strategy:
  419. fail-fast: false
  420. matrix:
  421. config:
  422. - { os: ubuntu-24.04, arch: amd64 }
  423. - { os: ubuntu-24.04-arm, arch: arm64 }
  424. needs: [version, base]
  425. steps:
  426. - name: Check out code
  427. uses: actions/checkout@v4
  428. - name: Setup Docker Buildx
  429. uses: docker/setup-buildx-action@v3
  430. with:
  431. driver: docker
  432. - name: Login to DockerHub
  433. uses: docker/login-action@v3
  434. with:
  435. username: ${{ secrets.DOCKERHUB_USERNAME }}
  436. password: ${{ secrets.DOCKERHUB_TOKEN }}
  437. - name: Build and push
  438. uses: docker/build-push-action@v6
  439. with:
  440. push: true
  441. context: ./web
  442. tags: |
  443. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
  444. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
  445. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.web_version }}-${{ matrix.config.arch }}
  446. build-args: |
  447. JITSI_REPO=${{ secrets.JITSI_REPO }}
  448. BASE_TAG=${{ needs.version.outputs.base }}
  449. web:
  450. runs-on: ubuntu-latest
  451. needs: [version, web-arch]
  452. steps:
  453. - name: Login to DockerHub
  454. uses: docker/login-action@v3
  455. with:
  456. username: ${{ secrets.DOCKERHUB_USERNAME }}
  457. password: ${{ secrets.DOCKERHUB_TOKEN }}
  458. - name: Create Docker Manifest
  459. uses: int128/docker-manifest-create-action@v2
  460. with:
  461. tags: |
  462. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.base }}
  463. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.date }}
  464. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.web_version }}
  465. sources: |
  466. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.base }}-amd64
  467. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.base }}-arm64