Skip to content

Commit

Permalink
feat(ci) automate stable releases with GH actions
Browse files Browse the repository at this point in the history
  • Loading branch information
saghul committed Feb 28, 2025
1 parent 9016f15 commit ef1fb47
Show file tree
Hide file tree
Showing 3 changed files with 297 additions and 0 deletions.
288 changes: 288 additions & 0 deletions .github/workflows/release-stable.yml
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# ChangeLog

Look at the GH releases from now on.

## stable-10008

Based on stable release 10008.
Expand Down
5 changes: 5 additions & 0 deletions release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
#

Expand Down

0 comments on commit ef1fb47

Please sign in to comment.