unstable.yml 16 KB

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