@@ -10,7 +10,7 @@ concurrency:
1010jobs :
1111 publish_apisix :
1212 name : Build and Publish RPM Package
13- runs-on : ubuntu-latest
13+ runs-on : ubuntu-18.04
1414 timeout-minutes : 60
1515
1616 steps :
@@ -35,32 +35,35 @@ jobs:
3535
3636 - name : Build apisix RPM Package
3737 if : ${{ startsWith(steps.tag_type.outputs.version, 'apisix/') }}
38- env :
38+ env :
3939 APISIX_TAG_VERSION : ${{ steps.tag_env.outputs.version}}
4040 run : |
4141 # build apisix
4242 make package type=rpm app=apisix openresty=apisix-base checkout=${APISIX_TAG_VERSION} version=${APISIX_TAG_VERSION} image_base=centos image_tag=7
4343 mv ./output/apisix-${APISIX_TAG_VERSION}-0.el7.x86_64.rpm ./
44+ echo "TARGET_APP=apisix" >> "$GITHUB_ENV"
4445
4546 - name : Build apisix-base RPM Package
4647 if : ${{ startsWith(steps.tag_type.outputs.version, 'apisix-base/') }}
47- env :
48+ env :
4849 APISIX_BASE_TAG_VERSION : ${{ steps.tag_env.outputs.version}}
4950 run : |
5051 # build apisix-base
5152 echo ${{ steps.tag_env.outputs.version}}
5253 echo ${{ steps.tag_type.outputs.version}}
5354 make package type=rpm app=apisix-base checkout=${APISIX_BASE_TAG_VERSION} version=${APISIX_BASE_TAG_VERSION} image_base=centos image_tag=7
5455 mv ./output/apisix-base-${APISIX_BASE_TAG_VERSION}-0.el7.x86_64.rpm ./
56+ echo "TARGET_APP=apisix-base" >> "$GITHUB_ENV"
5557
5658 - name : Build apisix-dashboard RPM Package
5759 if : ${{ startsWith(steps.tag_type.outputs.version, 'dashboard/') }}
58- env :
60+ env :
5961 APISIX_DASHBOARD_TAG_VERSION : ${{ steps.tag_env.outputs.version}}
6062 run : |
6163 # build apisix dashboard
6264 make package type=rpm app=dashboard checkout=${APISIX_DASHBOARD_TAG_VERSION} version=${APISIX_DASHBOARD_TAG_VERSION} image_base=centos image_tag=7
6365 mv ./output/apisix-dashboard-${APISIX_DASHBOARD_TAG_VERSION}-0.el7.x86_64.rpm ./
66+ echo "TARGET_APP=apisix-dashboard" >> "$GITHUB_ENV"
6467
6568 - name : Upload apisix Artifact
6669 if : ${{ startsWith(steps.tag_type.outputs.version, 'apisix/') }}
@@ -83,38 +86,48 @@ jobs:
8386 name : " apisix-dashboard-${{ steps.tag_env.outputs.version}}-0.el7.x86_64.rpm"
8487 path : " ./apisix-dashboard-${{ steps.tag_env.outputs.version}}-0.el7.x86_64.rpm"
8588
86- - name : Push apisix RPM Package to Aliyun OSS
87- if : ${{ startsWith(steps.tag_type.outputs.version, 'apisix/') }}
89+ - name : Sign RPM Package
90+ env :
91+ GPG_NAME : " APISIX Publisher"
92+ 93+ TAG_VERSION : ${{ steps.tag_env.outputs.version }}
94+ TARGET_APP : ${{ env.TARGET_APP }}
8895 run : |
89- echo "[Credentials]" >> /tmp/ossutilconfig
90- echo "language=EN" >> /tmp/ossutilconfig
91- echo "endpoint=oss-cn-shenzhen.aliyuncs.com" >> /tmp/ossutilconfig
92- echo "accessKeyID=${{ secrets.ACCESS_KEY_ID }}" >> /tmp/ossutilconfig
93- echo "accessKeySecret=${{ secrets.ACCESS_KEY_SECRET }}" >> /tmp/ossutilconfig
94- wget http://gosspublic.alicdn.com/ossutil/1.7.3/ossutil64
95- chmod 755 ossutil64
96- ./ossutil64 cp -f ./apisix-${{ steps.tag_env.outputs.version}}-0.el7.x86_64.rpm oss://apisix-repo/packages/centos/7/x86_64/ --config-file=/tmp/ossutilconfig
97-
98- - name : Push apisix-base RPM Package to Aliyun OSS
99- if : ${{ startsWith(steps.tag_type.outputs.version, 'apisix-base/') }}
96+ echo "${{ secrets.RPM_GPG_PRIV_KEY }}" >> /tmp/rpm-gpg-publish.private
97+ echo "${{ secrets.RPM_GPG_PASSPHRASE }}" >> /tmp/rpm-gpg-publish.passphrase
98+ ./utils/publish-rpm.sh sign_target_app_rpm
99+ date_tag=$(date +%Y%m%d)
100+ echo "DATE_TAG=${date_tag}" >> "$GITHUB_ENV"
101+
102+ - name : Backup and rebuild RPM Repository
103+ env :
104+ ACCESS_KEY_ID : ${{ secrets.ACCESS_KEY_ID }}
105+ ACCESS_KEY_SECRET : ${{ secrets.ACCESS_KEY_SECRET }}
106+ TAG_VERSION : ${{ steps.tag_env.outputs.version }}
107+ TARGET_APP : ${{ env.TARGET_APP }}
108+ DATE_TAG : ${{ env.DATE_TAG }}
100109 run : |
101- echo "[Credentials]" >> /tmp/ossutilconfig
102- echo "language=EN" >> /tmp/ossutilconfig
103- echo "endpoint=oss-cn-shenzhen.aliyuncs.com" >> /tmp/ossutilconfig
104- echo "accessKeyID=${{ secrets.ACCESS_KEY_ID }}" >> /tmp/ossutilconfig
105- echo "accessKeySecret=${{ secrets.ACCESS_KEY_SECRET }}" >> /tmp/ossutilconfig
106- wget http://gosspublic.alicdn.com/ossutil/1.7.3/ossutil64
107- chmod 755 ossutil64
108- ./ossutil64 cp -f ./apisix-base-${{ steps.tag_env.outputs.version}}-0.el7.x86_64.rpm oss://apisix-repo/packages/centos/7/x86_64/ --config-file=/tmp/ossutilconfig
109-
110- - name : Push apisix-dashboard RPM Package to Aliyun OSS
111- if : ${{ startsWith(steps.tag_type.outputs.version, 'dashboard/') }}
110+ ./utils/publish-rpm.sh backup_and_rebuild_repo
111+
112+ - name : Sign RPM Repository Metadata
113+ env :
114+ TAG_VERSION : ${{ steps.tag_env.outputs.version }}
115+ run : |
116+ ./utils/publish-rpm.sh sign_repo_metadata
117+
118+ - name : Upload new RPM Repository
119+ run : |
120+ ./utils/publish-rpm.sh upload_new_repo
121+
122+ - name : Check download new RPM Package
123+ env :
124+ TAG_VERSION : ${{ steps.tag_env.outputs.version }}
125+ TARGET_APP : ${{ env.TARGET_APP }}
126+ run : |
127+ ./utils/publish-rpm.sh check_down_load_rpm
128+
129+ - name : Remove backup RPM Repository
130+ env :
131+ DATE_TAG : ${{ env.DATE_TAG }}
112132 run : |
113- echo "[Credentials]" >> /tmp/ossutilconfig
114- echo "language=EN" >> /tmp/ossutilconfig
115- echo "endpoint=oss-cn-shenzhen.aliyuncs.com" >> /tmp/ossutilconfig
116- echo "accessKeyID=${{ secrets.ACCESS_KEY_ID }}" >> /tmp/ossutilconfig
117- echo "accessKeySecret=${{ secrets.ACCESS_KEY_SECRET }}" >> /tmp/ossutilconfig
118- wget http://gosspublic.alicdn.com/ossutil/1.7.3/ossutil64
119- chmod 755 ossutil64
120- ./ossutil64 cp -f ./apisix-dashboard-${{ steps.tag_env.outputs.version}}-0.el7.x86_64.rpm oss://apisix-repo/packages/centos/7/x86_64/ --config-file=/tmp/ossutilconfig
133+ ./utils/publish-rpm.sh rm_backup_repo
0 commit comments