feat(ci) automate stable releases with GH actions

This commit is contained in:
Saúl Ibarra Corretgé 2025-02-28 12:57:10 +01:00
parent 9016f15add
commit ef1fb47aeb
3 changed files with 297 additions and 0 deletions

288
.github/workflows/release-stable.yml vendored Normal file
View File

@ -0,0 +1,288 @@
name: "Release Stable"
on:
workflow_dispatch:
inputs:
version:
description: Version number
required: true
type: string
jobs:
gh-release:
runs-on: ubuntu-latest
needs: [base, base-java, jibri, jicofo, jigasi, jvb, prosody, web]
permissions:
# Give the default GITHUB_TOKEN write permission to commit and push the changed files back to the repository.
contents: write
steps:
- uses: actions/checkout@v4
- run: |
sed -i "" -e "s/unstable/stable-${{ github.event.inputs.version }}/" *.yml
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "release: stable-${{ github.event.inputs.version }}"
- name: release
uses: softprops/action-gh-release@v2
with:
tag_name: stable-${{ github.event.inputs.version }}
generate_release_notes: true
make_latest: true
- run: |
sed -i "" -e "s/stable-${{ github.event.inputs.version }}/unstable/" *.yml
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "misc: working on unstable"
base:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
context: ./base
tags: |
${{ secrets.JITSI_REPO }}/base:stable-${{ github.event.inputs.version }}
${{ secrets.JITSI_REPO }}/base:stable
build-args: |
JITSI_RELEASE=stable
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
base-java:
runs-on: ubuntu-latest
needs: base
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
context: ./base-java
tags: |
${{ secrets.JITSI_REPO }}/base-java:stable-${{ github.event.inputs.version }}
${{ secrets.JITSI_REPO }}/base-java:stable
build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=stable-${{ github.event.inputs.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
jibri:
runs-on: ubuntu-latest
needs: base-java
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
context: ./jibri
tags: |
${{ secrets.JITSI_REPO }}/jibri:stable-${{ github.event.inputs.version }}
${{ secrets.JITSI_REPO }}/jibri:stable
build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=stable-${{ github.event.inputs.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
jicofo:
runs-on: ubuntu-latest
needs: base-java
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
context: ./jicofo
tags: |
${{ secrets.JITSI_REPO }}/jicofo:stable-${{ github.event.inputs.version }}
${{ secrets.JITSI_REPO }}/jicofo:stable
build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=stable-${{ github.event.inputs.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
jigasi:
runs-on: ubuntu-latest
needs: base-java
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
context: ./jigasi
tags: |
${{ secrets.JITSI_REPO }}/jigasi:stable-${{ github.event.inputs.version }}
${{ secrets.JITSI_REPO }}/jigasi:stable
build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=stable-${{ github.event.inputs.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
jvb:
runs-on: ubuntu-latest
needs: base-java
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
context: ./jvb
tags: |
${{ secrets.JITSI_REPO }}/jvb:stable-${{ github.event.inputs.version }}
${{ secrets.JITSI_REPO }}/jvb:stable
build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=stable-${{ github.event.inputs.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
prosody:
runs-on: ubuntu-latest
needs: base
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
context: ./prosody
tags: |
${{ secrets.JITSI_REPO }}/prosody:stable-${{ github.event.inputs.version }}
${{ secrets.JITSI_REPO }}/prosody:stable
build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=stable-${{ github.event.inputs.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
web:
runs-on: ubuntu-latest
needs: base
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
context: ./web
tags: |
${{ secrets.JITSI_REPO }}/web:stable-${{ github.event.inputs.version }}
${{ secrets.JITSI_REPO }}/web:stable
build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=stable-${{ github.event.inputs.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max

View File

@ -1,3 +1,7 @@
# ChangeLog
Look at the GH releases from now on.
## stable-10008
Based on stable release 10008.

View File

@ -2,6 +2,11 @@
set -e
# **** NB ****
# This iscript is no longer used, but it is kept here for reference.
#
# Don't start a release if the tree is dirty
#