Просмотр исходного кода

Merge pull request #10599 from id/ci-enterprise-packages-in-scheduled-builds

ci: build both ce and ee packages in scheduled builds
Ivan Dyachkov 2 лет назад
Родитель
Сommit
6e64d0bde5
1 измененных файлов с 65 добавлено и 27 удалено
  1. 65 27
      .github/workflows/build_packages.yaml

+ 65 - 27
.github/workflows/build_packages.yaml

@@ -193,9 +193,8 @@ jobs:
 
   linux:
     needs: prepare
-    runs-on: ${{ matrix.build_machine }}
-    container:
-      image: "ghcr.io/emqx/emqx-builder/${{ matrix.builder }}:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os }}"
+    if: github.event_name != 'schedule'
+    runs-on: aws-${{ matrix.arch }}
 
     strategy:
       fail-fast: false
@@ -217,24 +216,15 @@ jobs:
           - el8
           - el7
           - amzn2
-        build_machine:
-          - aws-arm64
-          - ubuntu-22.04
         builder:
           - 5.0-34
         elixir:
           - 1.13.4
-        exclude:
-        - arch: arm64
-          build_machine: ubuntu-22.04
-        - arch: amd64
-          build_machine: aws-arm64
         include:
           - profile: emqx
             otp: 25.1.2-3
             arch: amd64
             os: ubuntu22.04
-            build_machine: ubuntu-22.04
             builder: 5.0-34
             elixir: 1.13.4
             release_with: elixir
@@ -242,7 +232,6 @@ jobs:
             otp: 25.1.2-3
             arch: amd64
             os: amzn2
-            build_machine: ubuntu-22.04
             builder: 5.0-34
             elixir: 1.13.4
             release_with: elixir
@@ -253,18 +242,12 @@ jobs:
 
     steps:
     - uses: AutoModality/action-clean@v1
-      if: matrix.build_machine == 'aws-arm64'
     - uses: actions/download-artifact@v3
       with:
         name: source
         path: .
     - name: unzip source code
       run: unzip -q source.zip
-    - name: tmp fix for el9
-      if: matrix.os == 'el9'
-      run: |
-        set -eu
-        dnf install -y krb5-devel
     - name: build emqx packages
       working-directory: source
       env:
@@ -276,13 +259,6 @@ jobs:
         SYSTEM: ${{ matrix.os }}
       run: |
         set -eu
-        git config --global --add safe.directory "/__w/emqx/emqx"
-        # Align path for CMake caches
-        if [ ! "$PWD" = "/emqx" ]; then
-          ln -s $PWD /emqx
-          cd /emqx
-        fi
-        echo "pwd is $PWD"
         PKGTYPES="tgz pkg"
         IS_ELIXIR="no"
         if [ ${{ matrix.release_with }} == 'elixir' ]; then
@@ -304,9 +280,71 @@ jobs:
       with:
         name: ${{ matrix.profile }}
         path: source/_packages/${{ matrix.profile }}/
+
+  linux-schedule:
+    needs: prepare
+    if: github.event_name == 'schedule'
+    runs-on: aws-${{ matrix.arch }}
+
+    strategy:
+      fail-fast: false
+      matrix:
+        profile:
+          - emqx
+          - emqx-enterprise
+        otp:
+          - 24.3.4.2-3
+        arch:
+          - amd64
+        os:
+          - debian10
+        builder:
+          - 5.0-34
+        elixir:
+          - 1.13.4
+
+    defaults:
+      run:
+        shell: bash
+
+    steps:
+    - uses: AutoModality/action-clean@v1
+    - uses: actions/download-artifact@v3
+      with:
+        name: source
+        path: .
+    - name: unzip source code
+      run: unzip -q source.zip
+    - name: build emqx packages
+      working-directory: source
+      env:
+        BUILDER: ${{ matrix.builder }}
+        ELIXIR: ${{ matrix.elixir }}
+        OTP: ${{ matrix.otp }}
+        PROFILE: ${{ matrix.profile }}
+        ARCH: ${{ matrix.arch }}
+        SYSTEM: ${{ matrix.os }}
+      run: |
+        set -eu
+        PKGTYPES="tgz pkg"
+        IS_ELIXIR="no"
+        for PKGTYPE in ${PKGTYPES};
+        do
+          ./scripts/buildx.sh \
+            --profile "${PROFILE}" \
+            --pkgtype "${PKGTYPE}" \
+            --arch "${ARCH}" \
+            --elixir "${IS_ELIXIR}" \
+            --builder "ghcr.io/emqx/emqx-builder/${BUILDER}:${ELIXIR}-${OTP}-${SYSTEM}"
+        done
+    - uses: actions/upload-artifact@v3
+      if: success()
+      with:
+        name: ${{ matrix.profile }}
+        path: source/_packages/${{ matrix.profile }}/
     - name: Send notification to Slack
       uses: slackapi/slack-github-action@v1.23.0
-      if: failure() && github.event_name == 'schedule'
+      if: failure()
       env:
         SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
       with: