Browse Source

feat(ci) automate stable releases with GH actions

Saúl Ibarra Corretgé 2 months ago
parent
commit
ef1fb47aeb
3 changed files with 297 additions and 0 deletions
  1. 288 0
      .github/workflows/release-stable.yml
  2. 4 0
      CHANGELOG.md
  3. 5 0
      release.sh

+ 288 - 0
.github/workflows/release-stable.yml

@@ -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 - 0
CHANGELOG.md

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

+ 5 - 0
release.sh

@@ -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
 #