unstable.yml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. name: Unstable Build
  2. on:
  3. pull_request:
  4. workflow_dispatch:
  5. jobs:
  6. version:
  7. runs-on: ubuntu-latest
  8. outputs:
  9. base: unstable
  10. date: unstable-${{ steps.date.outputs.date }}
  11. prosody_version: prosody-${{ steps.prosody_version.outputs.version }}
  12. jicofo_version: jicofo-${{ steps.jicofo_version.outputs.version }}
  13. web_version: web-${{ steps.web_version.outputs.version }}
  14. jvb_version: jvb-${{ steps.jvb_version.outputs.version }}
  15. steps:
  16. - name: Get current date
  17. id: date
  18. run: echo "date=$(date +%F)">> $GITHUB_OUTPUT
  19. - name: Prosody gpg key
  20. id: prosody_gpg_key
  21. run: curl --location --silent --show-error https://prosody.im/files/prosody-debian-packages.key | sudo dd of=/etc/apt/trusted.gpg.d/prosody.gpg
  22. - name: Prosody repo
  23. uses: myci-actions/add-deb-repo@11
  24. with:
  25. repo: deb https://packages.prosody.im/debian bullseye main
  26. repo-name: prosody
  27. keys-asc: https://prosody.im/files/prosody-debian-packages.key
  28. - name: Jitsi repo
  29. uses: myci-actions/add-deb-repo@11
  30. with:
  31. repo: deb https://download.jitsi.org/ unstable/
  32. repo-name: jitsi
  33. keys-asc: https://download.jitsi.org/jitsi-key.gpg.key
  34. - name: Get current jicofo versions
  35. id: jicofo_version
  36. 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
  37. - name: Get current jitsi-meet-web versions
  38. id: web_version
  39. 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
  40. - name: Get current jvb versions
  41. id: jvb_version
  42. 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
  43. - name: Get current prosody versions
  44. id: prosody_version
  45. run: echo "version=$( apt-cache madison prosody | awk '{print $3;}' | head -1 | cut -d'-' -f1 )" >> $GITHUB_OUTPUT
  46. base:
  47. runs-on: ubuntu-latest
  48. needs: version
  49. steps:
  50. - name: Check out code
  51. uses: actions/checkout@v3
  52. - name: Set up QEMU
  53. uses: docker/setup-qemu-action@v1
  54. with:
  55. platforms: linux/amd64,linux/arm64
  56. - name: Setup Docker Buildx
  57. uses: docker/setup-buildx-action@v1
  58. - name: Login to DockerHub
  59. uses: docker/login-action@v1
  60. if: ${{ github.event_name != 'pull_request' }}
  61. with:
  62. username: ${{ secrets.DOCKERHUB_USERNAME }}
  63. password: ${{ secrets.DOCKERHUB_TOKEN }}
  64. - name: Build and push
  65. uses: docker/build-push-action@v2
  66. if: ${{ github.event_name != 'pull_request' }}
  67. with:
  68. push: true
  69. context: ./base
  70. tags: |
  71. ${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.base }}
  72. ${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.date }}
  73. build-args: |
  74. JITSI_RELEASE=unstable
  75. platforms: linux/amd64,linux/arm64
  76. cache-from: type=gha
  77. cache-to: type=gha,mode=max
  78. - name: Dryrun
  79. uses: docker/build-push-action@v2
  80. if: ${{ github.event_name == 'pull_request' }}
  81. with:
  82. context: ./base
  83. tags: |
  84. jitsi/base:${{ needs.version.outputs.base }}
  85. jitsi/base:${{ needs.version.outputs.date }}
  86. build-args: |
  87. JITSI_RELEASE=unstable
  88. platforms: linux/amd64,linux/arm64
  89. cache-from: type=gha
  90. cache-to: type=gha,mode=max
  91. base-java:
  92. runs-on: ubuntu-latest
  93. needs: [version, base]
  94. steps:
  95. - name: Check out code
  96. uses: actions/checkout@v3
  97. - name: Set up QEMU
  98. uses: docker/setup-qemu-action@v1
  99. with:
  100. platforms: linux/amd64,linux/arm64
  101. - name: Setup Docker Buildx
  102. uses: docker/setup-buildx-action@v1
  103. - name: Login to DockerHub
  104. uses: docker/login-action@v1
  105. if: ${{ github.event_name != 'pull_request' }}
  106. with:
  107. username: ${{ secrets.DOCKERHUB_USERNAME }}
  108. password: ${{ secrets.DOCKERHUB_TOKEN }}
  109. - name: Build and push
  110. uses: docker/build-push-action@v2
  111. if: ${{ github.event_name != 'pull_request' }}
  112. with:
  113. push: true
  114. context: ./base-java
  115. tags: |
  116. ${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.base }}
  117. ${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.date }}
  118. build-args: |
  119. JITSI_REPO=${{ secrets.JITSI_REPO }}
  120. BASE_TAG=${{ needs.version.outputs.base }}
  121. platforms: linux/amd64,linux/arm64
  122. cache-from: type=gha
  123. cache-to: type=gha,mode=max
  124. - name: Dryrun
  125. uses: docker/build-push-action@v2
  126. if: ${{ github.event_name == 'pull_request' }}
  127. with:
  128. context: ./base-java
  129. tags: |
  130. jitsi/base-java:${{ needs.version.outputs.base }}
  131. jitsi/base-java:${{ needs.version.outputs.date }}
  132. build-args: |
  133. JITSI_REPO=jitsi
  134. BASE_TAG=${{ needs.version.outputs.base }}
  135. platforms: linux/amd64,linux/arm64
  136. cache-from: type=gha
  137. cache-to: type=gha,mode=max
  138. jibri:
  139. runs-on: ubuntu-latest
  140. needs: [version, base-java]
  141. steps:
  142. - name: Check out code
  143. uses: actions/checkout@v3
  144. - name: Set up QEMU
  145. uses: docker/setup-qemu-action@v1
  146. with:
  147. platforms: linux/amd64,linux/arm64
  148. - name: Setup Docker Buildx
  149. uses: docker/setup-buildx-action@v1
  150. - name: Login to DockerHub
  151. uses: docker/login-action@v1
  152. if: ${{ github.event_name != 'pull_request' }}
  153. with:
  154. username: ${{ secrets.DOCKERHUB_USERNAME }}
  155. password: ${{ secrets.DOCKERHUB_TOKEN }}
  156. - name: Build and push
  157. uses: docker/build-push-action@v2
  158. if: ${{ github.event_name != 'pull_request' }}
  159. with:
  160. push: true
  161. context: ./jibri
  162. tags: |
  163. ${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.base }}
  164. ${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.date }}
  165. build-args: |
  166. JITSI_REPO=${{ secrets.JITSI_REPO }}
  167. BASE_TAG=${{ needs.version.outputs.base }}
  168. platforms: linux/amd64,linux/arm64
  169. cache-from: type=gha
  170. cache-to: type=gha,mode=max
  171. - name: Dryrun
  172. uses: docker/build-push-action@v2
  173. if: ${{ github.event_name == 'pull_request' }}
  174. with:
  175. context: ./jibri
  176. tags: |
  177. jitsi/jibri:${{ needs.version.outputs.base }}
  178. jitsi/jibri:${{ needs.version.outputs.date }}
  179. build-args: |
  180. JITSI_REPO=jitsi
  181. BASE_TAG=${{ needs.version.outputs.base }}
  182. platforms: linux/amd64,linux/arm64
  183. cache-from: type=gha
  184. cache-to: type=gha,mode=max
  185. jicofo:
  186. runs-on: ubuntu-latest
  187. needs: [version, base-java]
  188. steps:
  189. - name: Check out code
  190. uses: actions/checkout@v3
  191. - name: Set up QEMU
  192. uses: docker/setup-qemu-action@v1
  193. with:
  194. platforms: linux/amd64,linux/arm64
  195. - name: Setup Docker Buildx
  196. uses: docker/setup-buildx-action@v1
  197. - name: Login to DockerHub
  198. uses: docker/login-action@v1
  199. if: ${{ github.event_name != 'pull_request' }}
  200. with:
  201. username: ${{ secrets.DOCKERHUB_USERNAME }}
  202. password: ${{ secrets.DOCKERHUB_TOKEN }}
  203. - name: Build and push
  204. uses: docker/build-push-action@v2
  205. if: ${{ github.event_name != 'pull_request' }}
  206. with:
  207. push: true
  208. context: ./jicofo
  209. tags: |
  210. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.base }}
  211. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.date }}
  212. ${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.jicofo_version }}
  213. build-args: |
  214. JITSI_REPO=${{ secrets.JITSI_REPO }}
  215. BASE_TAG=${{ needs.version.outputs.base }}
  216. platforms: linux/amd64,linux/arm64
  217. cache-from: type=gha
  218. cache-to: type=gha,mode=max
  219. - name: Dryrun
  220. uses: docker/build-push-action@v2
  221. if: ${{ github.event_name == 'pull_request' }}
  222. with:
  223. context: ./jicofo
  224. tags: |
  225. jitsi/jicofo:${{ needs.version.outputs.base }}
  226. jitsi/jicofo:${{ needs.version.outputs.date }}
  227. jitsi/jicofo:${{ needs.version.outputs.jicofo_version }}
  228. build-args: |
  229. JITSI_REPO=jitsi
  230. BASE_TAG=${{ needs.version.outputs.base }}
  231. platforms: linux/amd64,linux/arm64
  232. cache-from: type=gha
  233. cache-to: type=gha,mode=max
  234. jigasi:
  235. runs-on: ubuntu-latest
  236. needs: [version, base-java]
  237. steps:
  238. - name: Check out code
  239. uses: actions/checkout@v3
  240. - name: Set up QEMU
  241. uses: docker/setup-qemu-action@v1
  242. with:
  243. platforms: linux/amd64,linux/arm64
  244. - name: Setup Docker Buildx
  245. uses: docker/setup-buildx-action@v1
  246. - name: Login to DockerHub
  247. uses: docker/login-action@v1
  248. if: ${{ github.event_name != 'pull_request' }}
  249. with:
  250. username: ${{ secrets.DOCKERHUB_USERNAME }}
  251. password: ${{ secrets.DOCKERHUB_TOKEN }}
  252. - name: Build and push
  253. uses: docker/build-push-action@v2
  254. if: ${{ github.event_name != 'pull_request' }}
  255. with:
  256. push: true
  257. context: ./jigasi
  258. tags: |
  259. ${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.base }}
  260. ${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.date }}
  261. build-args: |
  262. JITSI_REPO=${{ secrets.JITSI_REPO }}
  263. BASE_TAG=${{ needs.version.outputs.base }}
  264. platforms: linux/amd64,linux/arm64
  265. cache-from: type=gha
  266. cache-to: type=gha,mode=max
  267. - name: Dryrun
  268. uses: docker/build-push-action@v2
  269. if: ${{ github.event_name == 'pull_request' }}
  270. with:
  271. context: ./jigasi
  272. tags: |
  273. jitsi/jigasi:${{ needs.version.outputs.base }}
  274. jitsi/jigasi:${{ needs.version.outputs.date }}
  275. build-args: |
  276. JITSI_REPO=jitsi
  277. BASE_TAG=${{ needs.version.outputs.base }}
  278. platforms: linux/amd64,linux/arm64
  279. cache-from: type=gha
  280. cache-to: type=gha,mode=max
  281. jvb:
  282. runs-on: ubuntu-latest
  283. needs: [version, base-java]
  284. steps:
  285. - name: Check out code
  286. uses: actions/checkout@v3
  287. - name: Set up QEMU
  288. uses: docker/setup-qemu-action@v1
  289. with:
  290. platforms: linux/amd64,linux/arm64
  291. - name: Setup Docker Buildx
  292. uses: docker/setup-buildx-action@v1
  293. - name: Login to DockerHub
  294. uses: docker/login-action@v1
  295. if: ${{ github.event_name != 'pull_request' }}
  296. with:
  297. username: ${{ secrets.DOCKERHUB_USERNAME }}
  298. password: ${{ secrets.DOCKERHUB_TOKEN }}
  299. - name: Build and push
  300. uses: docker/build-push-action@v2
  301. if: ${{ github.event_name != 'pull_request' }}
  302. with:
  303. push: true
  304. context: ./jvb
  305. tags: |
  306. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.base }}
  307. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.date }}
  308. ${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.jvb_version }}
  309. build-args: |
  310. JITSI_REPO=${{ secrets.JITSI_REPO }}
  311. BASE_TAG=${{ needs.version.outputs.base }}
  312. platforms: linux/amd64,linux/arm64
  313. cache-from: type=gha
  314. cache-to: type=gha,mode=max
  315. - name: Dryrun
  316. uses: docker/build-push-action@v2
  317. if: ${{ github.event_name == 'pull_request' }}
  318. with:
  319. context: ./jvb
  320. tags: |
  321. jitsi/jvb:${{ needs.version.outputs.base }}
  322. jitsi/jvb:${{ needs.version.outputs.date }}
  323. jitsi/jvb:${{ needs.version.outputs.jvb_version }}
  324. build-args: |
  325. JITSI_REPO=jitsi
  326. BASE_TAG=${{ needs.version.outputs.base }}
  327. platforms: linux/amd64,linux/arm64
  328. cache-from: type=gha
  329. cache-to: type=gha,mode=max
  330. prosody:
  331. runs-on: ubuntu-latest
  332. needs: [version, base]
  333. steps:
  334. - name: Check out code
  335. uses: actions/checkout@v3
  336. - name: Set up QEMU
  337. uses: docker/setup-qemu-action@v1
  338. with:
  339. platforms: linux/amd64,linux/arm64
  340. - name: Setup Docker Buildx
  341. uses: docker/setup-buildx-action@v1
  342. - name: Login to DockerHub
  343. uses: docker/login-action@v1
  344. if: ${{ github.event_name != 'pull_request' }}
  345. with:
  346. username: ${{ secrets.DOCKERHUB_USERNAME }}
  347. password: ${{ secrets.DOCKERHUB_TOKEN }}
  348. - name: Build and push
  349. uses: docker/build-push-action@v2
  350. if: ${{ github.event_name != 'pull_request' }}
  351. with:
  352. push: true
  353. context: ./prosody
  354. tags: |
  355. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.base }}
  356. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.date }}
  357. ${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.prosody_version }}
  358. build-args: |
  359. JITSI_REPO=${{ secrets.JITSI_REPO }}
  360. BASE_TAG=${{ needs.version.outputs.base }}
  361. platforms: linux/amd64,linux/arm64
  362. cache-from: type=gha
  363. cache-to: type=gha,mode=max
  364. - name: Dryrun
  365. uses: docker/build-push-action@v2
  366. if: ${{ github.event_name == 'pull_request' }}
  367. with:
  368. context: ./prosody
  369. tags: |
  370. jitsi/prosody:${{ needs.version.outputs.base }}
  371. jitsi/prosody:${{ needs.version.outputs.date }}
  372. jitsi/prosody:${{ needs.version.outputs.prosody_version }}
  373. build-args: |
  374. JITSI_REPO=jitsi
  375. BASE_TAG=${{ needs.version.outputs.base }}
  376. platforms: linux/amd64,linux/arm64
  377. cache-from: type=gha
  378. cache-to: type=gha,mode=max
  379. web:
  380. runs-on: ubuntu-latest
  381. needs: [version, base]
  382. steps:
  383. - name: Check out code
  384. uses: actions/checkout@v3
  385. - name: Set up QEMU
  386. uses: docker/setup-qemu-action@v1
  387. with:
  388. platforms: linux/amd64,linux/arm64
  389. - name: Setup Docker Buildx
  390. uses: docker/setup-buildx-action@v1
  391. - name: Login to DockerHub
  392. uses: docker/login-action@v1
  393. if: ${{ github.event_name != 'pull_request' }}
  394. with:
  395. username: ${{ secrets.DOCKERHUB_USERNAME }}
  396. password: ${{ secrets.DOCKERHUB_TOKEN }}
  397. - name: Build and push
  398. uses: docker/build-push-action@v2
  399. if: ${{ github.event_name != 'pull_request' }}
  400. with:
  401. push: true
  402. context: ./web
  403. tags: |
  404. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.base }}
  405. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.date }}
  406. ${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.web_version }}
  407. build-args: |
  408. JITSI_REPO=${{ secrets.JITSI_REPO }}
  409. BASE_TAG=${{ needs.version.outputs.base }}
  410. platforms: linux/amd64,linux/arm64
  411. cache-from: type=gha
  412. cache-to: type=gha,mode=max
  413. - name: Dryrun
  414. uses: docker/build-push-action@v2
  415. if: ${{ github.event_name == 'pull_request' }}
  416. with:
  417. context: ./web
  418. tags: |
  419. jitsi/web:${{ needs.version.outputs.base }}
  420. jitsi/web:${{ needs.version.outputs.date }}
  421. jitsi/web:${{ needs.version.outputs.web_version }}
  422. build-args: |
  423. JITSI_REPO=jitsi
  424. BASE_TAG=${{ needs.version.outputs.base }}
  425. platforms: linux/amd64,linux/arm64
  426. cache-from: type=gha
  427. cache-to: type=gha,mode=max