fix(ci) avoid OOM when building with QEMU
We seem to be close to the QEMU memory limit in GHA, that's why actions fail sporadically. Switch to native builds, aka build amd64 in an amd64 machine and do the same for arm64. This means we need to push 2 extra tags: foo-amd64 and foo-arm64 and then create a manifest to unite them both. Ref: https://github.com/docker/build-push-action/issues/621
This commit is contained in:
324
.github/workflows/unstable.yml
vendored
324
.github/workflows/unstable.yml
vendored
@@ -55,18 +55,22 @@ jobs:
|
|||||||
id: jigasi_version
|
id: jigasi_version
|
||||||
run: echo "version=$( apt-cache show jigasi | head -10 | grep Version | awk '{print $2}' )" >> $GITHUB_OUTPUT
|
run: echo "version=$( apt-cache show jigasi | head -10 | grep Version | awk '{print $2}' )" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
base:
|
base-arch:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ${{ matrix.config.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
config:
|
||||||
|
- { os: ubuntu-24.04, arch: amd64 }
|
||||||
|
- { os: ubuntu-24.04-arm, arch: arm64 }
|
||||||
needs: version
|
needs: version
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
with:
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
- name: Setup Docker Buildx
|
- name: Setup Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: docker
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -78,26 +82,48 @@ jobs:
|
|||||||
push: true
|
push: true
|
||||||
context: ./base
|
context: ./base
|
||||||
tags: |
|
tags: |
|
||||||
${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.base }}
|
${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.date }}
|
${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
|
||||||
build-args: |
|
build-args: |
|
||||||
JITSI_RELEASE=unstable
|
JITSI_RELEASE=unstable
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
|
|
||||||
base-java:
|
base:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs: [version, base-arch]
|
||||||
|
steps:
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: Create Docker Manifest
|
||||||
|
uses: int128/docker-manifest-create-action@v2
|
||||||
|
with:
|
||||||
|
tags: |
|
||||||
|
${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.base }}
|
||||||
|
${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.date }}
|
||||||
|
sources: |
|
||||||
|
${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.base }}-amd64
|
||||||
|
${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.base }}-arm64
|
||||||
|
|
||||||
|
base-java-arch:
|
||||||
|
runs-on: ${{ matrix.config.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
config:
|
||||||
|
- { os: ubuntu-24.04, arch: amd64 }
|
||||||
|
- { os: ubuntu-24.04-arm, arch: arm64 }
|
||||||
needs: [version, base]
|
needs: [version, base]
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
with:
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
- name: Setup Docker Buildx
|
- name: Setup Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: docker
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -109,27 +135,49 @@ jobs:
|
|||||||
push: true
|
push: true
|
||||||
context: ./base-java
|
context: ./base-java
|
||||||
tags: |
|
tags: |
|
||||||
${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.base }}
|
${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.date }}
|
${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
|
||||||
build-args: |
|
build-args: |
|
||||||
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
||||||
BASE_TAG=${{ needs.version.outputs.base }}
|
BASE_TAG=${{ needs.version.outputs.base }}
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
|
|
||||||
jibri:
|
base-java:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs: [version, base-java-arch]
|
||||||
|
steps:
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: Create Docker Manifest
|
||||||
|
uses: int128/docker-manifest-create-action@v2
|
||||||
|
with:
|
||||||
|
tags: |
|
||||||
|
${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.base }}
|
||||||
|
${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.date }}
|
||||||
|
sources: |
|
||||||
|
${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.base }}-amd64
|
||||||
|
${{ secrets.JITSI_REPO }}/base-java:${{ needs.version.outputs.base }}-arm64
|
||||||
|
|
||||||
|
jibri-arch:
|
||||||
|
runs-on: ${{ matrix.config.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
config:
|
||||||
|
- { os: ubuntu-24.04, arch: amd64 }
|
||||||
|
- { os: ubuntu-24.04-arm, arch: arm64 }
|
||||||
needs: [version, base-java]
|
needs: [version, base-java]
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
with:
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
- name: Setup Docker Buildx
|
- name: Setup Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: docker
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -141,28 +189,51 @@ jobs:
|
|||||||
push: true
|
push: true
|
||||||
context: ./jibri
|
context: ./jibri
|
||||||
tags: |
|
tags: |
|
||||||
${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.base }}
|
${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.date }}
|
${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.jibri_version }}
|
${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.jibri_version }}-${{ matrix.config.arch }}
|
||||||
build-args: |
|
build-args: |
|
||||||
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
||||||
BASE_TAG=${{ needs.version.outputs.base }}
|
BASE_TAG=${{ needs.version.outputs.base }}
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
|
|
||||||
jicofo:
|
jibri:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs: [version, jibri-arch]
|
||||||
|
steps:
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: Create Docker Manifest
|
||||||
|
uses: int128/docker-manifest-create-action@v2
|
||||||
|
with:
|
||||||
|
tags: |
|
||||||
|
${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.base }}
|
||||||
|
${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.date }}
|
||||||
|
${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.jibri_version }}
|
||||||
|
sources: |
|
||||||
|
${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.base }}-amd64
|
||||||
|
${{ secrets.JITSI_REPO }}/jibri:${{ needs.version.outputs.base }}-arm64
|
||||||
|
|
||||||
|
jicofo-arch:
|
||||||
|
runs-on: ${{ matrix.config.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
config:
|
||||||
|
- { os: ubuntu-24.04, arch: amd64 }
|
||||||
|
- { os: ubuntu-24.04-arm, arch: arm64 }
|
||||||
needs: [version, base-java]
|
needs: [version, base-java]
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
with:
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
- name: Setup Docker Buildx
|
- name: Setup Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: docker
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -174,28 +245,51 @@ jobs:
|
|||||||
push: true
|
push: true
|
||||||
context: ./jicofo
|
context: ./jicofo
|
||||||
tags: |
|
tags: |
|
||||||
${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.base }}
|
${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.date }}
|
${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.jicofo_version }}
|
${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.jicofo_version }}-${{ matrix.config.arch }}
|
||||||
build-args: |
|
build-args: |
|
||||||
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
||||||
BASE_TAG=${{ needs.version.outputs.base }}
|
BASE_TAG=${{ needs.version.outputs.base }}
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
|
|
||||||
jigasi:
|
jicofo:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs: [version, jicofo-arch]
|
||||||
|
steps:
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: Create Docker Manifest
|
||||||
|
uses: int128/docker-manifest-create-action@v2
|
||||||
|
with:
|
||||||
|
tags: |
|
||||||
|
${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.base }}
|
||||||
|
${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.date }}
|
||||||
|
${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.jicofo_version }}
|
||||||
|
sources: |
|
||||||
|
${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.base }}-amd64
|
||||||
|
${{ secrets.JITSI_REPO }}/jicofo:${{ needs.version.outputs.base }}-arm64
|
||||||
|
|
||||||
|
jigasi-arch:
|
||||||
|
runs-on: ${{ matrix.config.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
config:
|
||||||
|
- { os: ubuntu-24.04, arch: amd64 }
|
||||||
|
- { os: ubuntu-24.04-arm, arch: arm64 }
|
||||||
needs: [version, base-java]
|
needs: [version, base-java]
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
with:
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
- name: Setup Docker Buildx
|
- name: Setup Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: docker
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -207,28 +301,51 @@ jobs:
|
|||||||
push: true
|
push: true
|
||||||
context: ./jigasi
|
context: ./jigasi
|
||||||
tags: |
|
tags: |
|
||||||
${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.base }}
|
${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.date }}
|
${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.jigasi_version }}
|
${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.jigasi_version }}-${{ matrix.config.arch }}
|
||||||
build-args: |
|
build-args: |
|
||||||
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
||||||
BASE_TAG=${{ needs.version.outputs.base }}
|
BASE_TAG=${{ needs.version.outputs.base }}
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
|
|
||||||
jvb:
|
jigasi:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs: [version, jigasi-arch]
|
||||||
|
steps:
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: Create Docker Manifest
|
||||||
|
uses: int128/docker-manifest-create-action@v2
|
||||||
|
with:
|
||||||
|
tags: |
|
||||||
|
${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.base }}
|
||||||
|
${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.date }}
|
||||||
|
${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.jigasi_version }}
|
||||||
|
sources: |
|
||||||
|
${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.base }}-amd64
|
||||||
|
${{ secrets.JITSI_REPO }}/jigasi:${{ needs.version.outputs.base }}-arm64
|
||||||
|
|
||||||
|
jvb-arch:
|
||||||
|
runs-on: ${{ matrix.config.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
config:
|
||||||
|
- { os: ubuntu-24.04, arch: amd64 }
|
||||||
|
- { os: ubuntu-24.04-arm, arch: arm64 }
|
||||||
needs: [version, base-java]
|
needs: [version, base-java]
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
with:
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
- name: Setup Docker Buildx
|
- name: Setup Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: docker
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -240,28 +357,51 @@ jobs:
|
|||||||
push: true
|
push: true
|
||||||
context: ./jvb
|
context: ./jvb
|
||||||
tags: |
|
tags: |
|
||||||
${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.base }}
|
${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.date }}
|
${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.jvb_version }}
|
${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.jvb_version }}-${{ matrix.config.arch }}
|
||||||
build-args: |
|
build-args: |
|
||||||
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
||||||
BASE_TAG=${{ needs.version.outputs.base }}
|
BASE_TAG=${{ needs.version.outputs.base }}
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
|
|
||||||
prosody:
|
jvb:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs: [version, jvb-arch]
|
||||||
|
steps:
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: Create Docker Manifest
|
||||||
|
uses: int128/docker-manifest-create-action@v2
|
||||||
|
with:
|
||||||
|
tags: |
|
||||||
|
${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.base }}
|
||||||
|
${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.date }}
|
||||||
|
${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.jvb_version }}
|
||||||
|
sources: |
|
||||||
|
${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.base }}-amd64
|
||||||
|
${{ secrets.JITSI_REPO }}/jvb:${{ needs.version.outputs.base }}-arm64
|
||||||
|
|
||||||
|
prosody-arch:
|
||||||
|
runs-on: ${{ matrix.config.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
config:
|
||||||
|
- { os: ubuntu-24.04, arch: amd64 }
|
||||||
|
- { os: ubuntu-24.04-arm, arch: arm64 }
|
||||||
needs: [version, base]
|
needs: [version, base]
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
with:
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
- name: Setup Docker Buildx
|
- name: Setup Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: docker
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -273,28 +413,51 @@ jobs:
|
|||||||
push: true
|
push: true
|
||||||
context: ./prosody
|
context: ./prosody
|
||||||
tags: |
|
tags: |
|
||||||
${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.base }}
|
${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.date }}
|
${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.prosody_version }}
|
${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.prosody_version }}-${{ matrix.config.arch }}
|
||||||
build-args: |
|
build-args: |
|
||||||
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
||||||
BASE_TAG=${{ needs.version.outputs.base }}
|
BASE_TAG=${{ needs.version.outputs.base }}
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
|
|
||||||
web:
|
prosody:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs: [version, prosody-arch]
|
||||||
|
steps:
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: Create Docker Manifest
|
||||||
|
uses: int128/docker-manifest-create-action@v2
|
||||||
|
with:
|
||||||
|
tags: |
|
||||||
|
${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.base }}
|
||||||
|
${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.date }}
|
||||||
|
${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.prosody_version }}
|
||||||
|
sources: |
|
||||||
|
${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.base }}-amd64
|
||||||
|
${{ secrets.JITSI_REPO }}/prosody:${{ needs.version.outputs.base }}-arm64
|
||||||
|
|
||||||
|
web-arch:
|
||||||
|
runs-on: ${{ matrix.config.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
config:
|
||||||
|
- { os: ubuntu-24.04, arch: amd64 }
|
||||||
|
- { os: ubuntu-24.04-arm, arch: arm64 }
|
||||||
needs: [version, base]
|
needs: [version, base]
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
with:
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
- name: Setup Docker Buildx
|
- name: Setup Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: docker
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -306,12 +469,31 @@ jobs:
|
|||||||
push: true
|
push: true
|
||||||
context: ./web
|
context: ./web
|
||||||
tags: |
|
tags: |
|
||||||
${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.base }}
|
${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.base }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.date }}
|
${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.date }}-${{ matrix.config.arch }}
|
||||||
${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.web_version }}
|
${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.web_version }}-${{ matrix.config.arch }}
|
||||||
build-args: |
|
build-args: |
|
||||||
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
JITSI_REPO=${{ secrets.JITSI_REPO }}
|
||||||
BASE_TAG=${{ needs.version.outputs.base }}
|
BASE_TAG=${{ needs.version.outputs.base }}
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
|
|
||||||
|
web:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [version, web-arch]
|
||||||
|
steps:
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: Create Docker Manifest
|
||||||
|
uses: int128/docker-manifest-create-action@v2
|
||||||
|
with:
|
||||||
|
tags: |
|
||||||
|
${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.base }}
|
||||||
|
${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.date }}
|
||||||
|
${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.web_version }}
|
||||||
|
sources: |
|
||||||
|
${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.base }}-amd64
|
||||||
|
${{ secrets.JITSI_REPO }}/web:${{ needs.version.outputs.base }}-arm64
|
||||||
|
|||||||
Reference in New Issue
Block a user