unstable.yml 17 KB

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