This is an automated email from the ASF dual-hosted git repository.

spacewander pushed a commit to branch release/rpm
in repository https://gitbox.apache.org/repos/asf/apisix.git

commit 9ee82f9d27b2866e8f64244b9f2493e881df771f
Author: Shuyang Wu <wosoyo...@gmail.com>
AuthorDate: Wed Mar 3 17:59:59 2021 +0800

    ci: auto generate and check for rpm package (#3621)
    
    Co-authored-by: John Bampton <jbamp...@users.noreply.github.com>
---
 .github/workflows/build.yml      |  1 +
 .github/workflows/centos7-ci.yml | 51 ++++++++++++++++++++++++++++++++--------
 utils/centos7-ci.sh              |  6 ++---
 3 files changed, 45 insertions(+), 13 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4337e2f..46cfcd8 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -54,6 +54,7 @@ jobs:
           submodules: recursive
 
       - name: Extract branch name
+        if: ${{ startsWith(github.ref, 'refs/heads/release/') }}
         id: branch_env
         shell: bash
         run: |
diff --git a/.github/workflows/centos7-ci.yml b/.github/workflows/centos7-ci.yml
index 1e3b5fc..4f99fd3 100644
--- a/.github/workflows/centos7-ci.yml
+++ b/.github/workflows/centos7-ci.yml
@@ -2,11 +2,9 @@ name: CI Centos7
 
 on:
   push:
-    branches:
-      - master
+    branches: [master, 'release/**']
   pull_request:
-    branches:
-      - master
+    branches: [master]
 
 jobs:
   test_apisix:
@@ -29,6 +27,24 @@ jobs:
       with:
         submodules: recursive
 
+    - name: Extract branch name
+      if: ${{ startsWith(github.ref, 'refs/heads/release/') }}
+      id: branch_env
+      shell: bash
+      run: |
+        echo "##[set-output name=version;]$(echo ${GITHUB_REF##*/})"
+
+    - name: Build rpm package
+      if: ${{ startsWith(github.ref, 'refs/heads/release/') }}
+      run: |
+        export VERSION=${{ steps.branch_env.outputs.version }}
+        sudo gem install --no-document fpm
+        git clone https://github.com/api7/apisix-build-tools.git
+        cd apisix-build-tools
+        make package type=rpm app=apisix version=${VERSION} 
checkout=release/${VERSION}
+        cd ..
+        rm -rf $(ls -1 --ignore=apisix-build-tools --ignore=t --ignore=utils 
--ignore=Makefile --ignore=rockspec)
+
     - name: Install Redis Cluster
       run: |
         docker run -d -p ${MASTER1_PORT}:6379 -p ${MASTER2_PORT}:6380 -p 
${MASTER3_PORT}:6381 -p ${SLAVE1_PORT}:6382 -p ${SLAVE2_PORT}:6383 -p 
${SLAVE3_PORT}:6384 --name redis-cluster vishnunair/docker-redis-cluster:latest
@@ -60,11 +76,12 @@ jobs:
         -v /home/runner/work/apisix/apisix/t/certs:/certs \
         bitnami/etcd:3.4.0
 
-    - name: run centos7 docker and mapping apisix into container
+    - name: Run centos7 docker and mapping apisix into container
       run: |
-        docker run -itd -v /home/runner/work/apisix/apisix:/tmp/apisix --name 
centos7Instance --net="host" docker.io/centos:7 /bin/bash
+        docker run -itd -v /home/runner/work/apisix/apisix:/apisix --name 
centos7Instance --net="host" docker.io/centos:7 /bin/bash
+        # docker exec centos7Instance bash -c "cp -r /tmp/apisix ./"
 
-    - name: run other docker containers for test
+    - name: Run other docker containers for test
       run: |
         docker run --rm -itd -p 6379:6379 --name apisix_redis redis:3.0-alpine
         docker run --rm -itd -e HTTP_PORT=8888 -e HTTPS_PORT=9999 -p 8888:8888 
-p 9999:9999 mendhak/http-https-echo
@@ -80,11 +97,25 @@ jobs:
         docker run --rm --name consul_1 -d -p 8500:8500 consul:1.7 consul 
agent -server -bootstrap-expect=1 -client 0.0.0.0 -log-level info 
-data-dir=/consul/data
         docker run --rm --name consul_2 -d -p 8600:8500 consul:1.7 consul 
agent -server -bootstrap-expect=1 -client 0.0.0.0 -log-level info 
-data-dir=/consul/data
 
-    - name: install dependencies
+    - name: Install dependencies
       run: |
-        docker exec centos7Instance bash -c "cp -r /tmp/apisix ./"
         docker exec centos7Instance bash -c "cd apisix && 
./utils/centos7-ci.sh install_dependencies"
 
-    - name: run test cases
+    - name: Install rpm package
+      if: ${{ startsWith(github.ref, 'refs/heads/release/') }}
+      run: |
+        docker exec centos7Instance bash -c "cd apisix && rpm -iv 
--prefix=/apisix ./apisix-build-tools/output/apisix-${{ 
steps.branch_env.outputs.version }}-0.x86_64.rpm"
+        # Dependencies are attached with rpm, so revert `make deps`
+        docker exec centos7Instance bash -c "cd apisix && rm -rf deps"
+        docker exec centos7Instance bash -c "cd apisix && mv usr/bin . && mv 
usr/local/apisix/* ."
+
+    - name: Run test cases
       run: |
         docker exec centos7Instance bash -c "cd apisix && 
./utils/centos7-ci.sh run_case"
+
+    - name: Publish Artifact
+      if: ${{ startsWith(github.ref, 'refs/heads/release/') }}
+      uses: actions/upload-artifact@v2.2.2
+      with:
+        name: "rpm"
+        path: "./apisix-build-tools/output/apisix-${{ 
steps.branch_env.outputs.version }}-0.x86_64.rpm"
diff --git a/utils/centos7-ci.sh b/utils/centos7-ci.sh
index 5ca6ef5..db60fcf 100755
--- a/utils/centos7-ci.sh
+++ b/utils/centos7-ci.sh
@@ -25,9 +25,9 @@ install_dependencies() {
     yum install -y wget tar gcc automake autoconf libtool make unzip \
         curl git which sudo
 
-    # install openresty
+    # install openresty to make apisix's rpm test work
     yum install -y yum-utils && yum-config-manager --add-repo 
https://openresty.org/package/centos/openresty.repo
-    yum install -y openresty-debug openresty-openssl111-debug-devel
+    yum install -y openresty openresty-debug openresty-openssl111-debug-devel
 
     # install luarocks
     ./utils/linux-install-luarocks.sh
@@ -57,11 +57,11 @@ install_dependencies() {
     # install dependencies
     git clone https://github.com/iresty/test-nginx.git test-nginx
     make deps
-    make init
 }
 
 run_case() {
     export_or_prefix
+    make init
     ./utils/set-dns.sh
     # run test cases
     FLUSH_ETCD=1 prove -I./test-nginx/lib -I./ -r t/

Reply via email to