Fix deb package building error and add extra checks for version
This commit is contained in:
		
							parent
							
								
									3e7fc94ca7
								
							
						
					
					
						commit
						fe74bb91dd
					
				| @ -1,13 +1,26 @@ | |||||||
| name: Set up Package Repository and Test (Manual Trigger) | name: Set up Package Repository and Test (Manual Trigger) | ||||||
| 
 | 
 | ||||||
| # This is a manual trigger. | # This is a manual trigger. | ||||||
| on: [workflow_dispatch] | on: | ||||||
|  |   workflow_dispatch: | ||||||
|  |     inputs: | ||||||
|  |       only_test: | ||||||
|  |         description: 'Only Test? <Y/N>' | ||||||
|  |         required: true | ||||||
|  |         default: 'N' | ||||||
|  |       test_version: | ||||||
|  |         description: 'Test Occlum version' | ||||||
|  |         required: false | ||||||
| 
 | 
 | ||||||
| jobs: | jobs: | ||||||
|   Package_repository_setup_and_test: |   Package_repository_setup_and_test: | ||||||
|     runs-on: ubuntu-18.04 |     runs-on: ubuntu-18.04 | ||||||
|  |     if: github.event.inputs.only_test == 'N' | ||||||
|     env: |     env: | ||||||
|      TOKEN: ${{ secrets.PAT_TOKEN }} |      TOKEN: ${{ secrets.PAT_TOKEN }} | ||||||
|  |     # Map a step output to a job output | ||||||
|  |     outputs: | ||||||
|  |       occlum_version: ${{ steps.occlum_version.outputs.version }} | ||||||
|     steps: |     steps: | ||||||
|     # This step is added to get more free space |     # This step is added to get more free space | ||||||
|     - name: Clean virtual environment |     - name: Clean virtual environment | ||||||
| @ -36,6 +49,10 @@ jobs: | |||||||
|         cd $GITHUB_WORKSPACE/occlum |         cd $GITHUB_WORKSPACE/occlum | ||||||
|         echo "OCCLUM_VERSION=$(grep "Version =" src/pal/include/occlum_version.h |  awk '{print $4}')" >> $GITHUB_ENV |         echo "OCCLUM_VERSION=$(grep "Version =" src/pal/include/occlum_version.h |  awk '{print $4}')" >> $GITHUB_ENV | ||||||
| 
 | 
 | ||||||
|  |     - name: Set occlum version as output | ||||||
|  |       id: occlum_version | ||||||
|  |       run: echo "::set-output name=version::${{ env.OCCLUM_VERSION }}" | ||||||
|  | 
 | ||||||
|     - name: Create ubuntu container |     - name: Create ubuntu container | ||||||
|       run: docker run -itd --name=ubuntu -v $GITHUB_WORKSPACE:/root/workspace occlum/occlum:${{ env.OCCLUM_VERSION }}-ubuntu18.04 |       run: docker run -itd --name=ubuntu -v $GITHUB_WORKSPACE:/root/workspace occlum/occlum:${{ env.OCCLUM_VERSION }}-ubuntu18.04 | ||||||
| 
 | 
 | ||||||
| @ -98,12 +115,21 @@ jobs: | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|   Test_deb_package: |   Test_deb_package: | ||||||
|  |     if: ${{ always() }} | ||||||
|     needs: Package_repository_setup_and_test |     needs: Package_repository_setup_and_test | ||||||
|     runs-on: ubuntu-18.04 |     runs-on: ubuntu-18.04 | ||||||
|  | 
 | ||||||
|     steps: |     steps: | ||||||
|     - name: Create a clean ubuntu container |     - name: Create a clean ubuntu container | ||||||
|       run: docker run -itd --name=ubuntu ubuntu:18.04 |       run: docker run -itd --name=ubuntu ubuntu:18.04 | ||||||
| 
 | 
 | ||||||
|  |     - name: Get occlum version from user inputs | ||||||
|  |       run: echo "OCCLUM_VERSION=${{github.event.inputs.test_version}}" >> $GITHUB_ENV | ||||||
|  | 
 | ||||||
|  |     - name: Update occlum version from previous job | ||||||
|  |       if: github.event.inputs.only_test == 'N' | ||||||
|  |       run: echo "OCCLUM_VERSION=${{needs.Package_repository_setup_and_test.outputs.occlum_version}}" >> $GITHUB_ENV | ||||||
|  | 
 | ||||||
|     - name: Configure sgx and occlum deb repo |     - name: Configure sgx and occlum deb repo | ||||||
|       run: | |       run: | | ||||||
|           # Set the default timezone to make tzdata work |           # Set the default timezone to make tzdata work | ||||||
| @ -115,20 +141,33 @@ jobs: | |||||||
|             wget -qO - https://occlum.io/occlum-package-repos/debian/public.key | apt-key add -;" |             wget -qO - https://occlum.io/occlum-package-repos/debian/public.key | apt-key add -;" | ||||||
| 
 | 
 | ||||||
|     - name: Install sgx dependencies and occlum |     - name: Install sgx dependencies and occlum | ||||||
|       run: docker exec ubuntu bash -c "apt-get update; apt-cache policy occlum; apt-get install -y occlum libsgx-uae-service libsgx-dcap-ql" |       run: docker exec ubuntu bash -c "apt-get update; apt-cache policy occlum | grep -n5 ${{ env.OCCLUM_VERSION }} && apt-get install -y occlum libsgx-uae-service libsgx-dcap-ql" | ||||||
| 
 | 
 | ||||||
|     - name: Hello world test |     - name: Hello world test | ||||||
|       run: docker exec ubuntu bash -c "source /etc/profile; cd /root; wget https://raw.githubusercontent.com/occlum/occlum/master/demos/hello_c/hello_world.c; occlum-gcc -o hello_world hello_world.c; |       run: docker exec ubuntu bash -c "source /etc/profile; cd /root; wget https://raw.githubusercontent.com/occlum/occlum/master/demos/hello_c/hello_world.c; occlum-gcc -o hello_world hello_world.c; | ||||||
|             occlum new occlum-instance; cp hello_world /root/occlum-instance/image/bin; cd /root/occlum-instance && SGX_MODE=SIM occlum build; occlum run /bin/hello_world" |             occlum new occlum-instance; cp hello_world /root/occlum-instance/image/bin; cd /root/occlum-instance && SGX_MODE=SIM occlum build; occlum run /bin/hello_world" | ||||||
| 
 | 
 | ||||||
|  |     # If there is no match, it will return 1. | ||||||
|  |     - name: Check installed version | ||||||
|  |       run: docker exec ubuntu bash -c "cat /opt/occlum/include/occlum_version.h | grep -n5 ${{ env.OCCLUM_VERSION }}" | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|   Test_rpm_package: |   Test_rpm_package: | ||||||
|  |     if: ${{ always() }} | ||||||
|     needs: Package_repository_setup_and_test |     needs: Package_repository_setup_and_test | ||||||
|     runs-on: ubuntu-18.04 |     runs-on: ubuntu-18.04 | ||||||
|  | 
 | ||||||
|     steps: |     steps: | ||||||
|     - name: Create clean centos container |     - name: Create clean centos container | ||||||
|       run: docker run -itd --name=centos centos:centos8.2.2004 |       run: docker run -itd --name=centos centos:centos8.2.2004 | ||||||
| 
 | 
 | ||||||
|  |     - name: Get occlum version from user inputs | ||||||
|  |       run: echo "OCCLUM_VERSION=${{github.event.inputs.test_version}}" >> $GITHUB_ENV | ||||||
|  | 
 | ||||||
|  |     - name: Update occlum version from previous job | ||||||
|  |       if: github.event.inputs.only_test == 'N' | ||||||
|  |       run: echo "OCCLUM_VERSION=${{needs.Package_repository_setup_and_test.outputs.occlum_version}}" >> $GITHUB_ENV | ||||||
|  | 
 | ||||||
|     - name: Install sgx dependencies |     - name: Install sgx dependencies | ||||||
|       run: docker exec centos bash -c "yum install -y wget yum-utils make jq gdb; cd /root && wget https://download.01.org/intel-sgx/sgx-linux/2.13.3/distro/centos8.2-server/sgx_rpm_local_repo.tgz; |       run: docker exec centos bash -c "yum install -y wget yum-utils make jq gdb; cd /root && wget https://download.01.org/intel-sgx/sgx-linux/2.13.3/distro/centos8.2-server/sgx_rpm_local_repo.tgz; | ||||||
|         tar -xvzf sgx_rpm_local_repo.tgz; yum-config-manager --add-repo file:///root/sgx_rpm_local_repo; yum --nogpgcheck install -y libsgx-dcap-ql libsgx-epid libsgx-urts; |         tar -xvzf sgx_rpm_local_repo.tgz; yum-config-manager --add-repo file:///root/sgx_rpm_local_repo; yum --nogpgcheck install -y libsgx-dcap-ql libsgx-epid libsgx-urts; | ||||||
| @ -146,8 +185,12 @@ jobs: | |||||||
|         gpgkey=https://occlum.io/occlum-package-repos/rpm-repo/RPM-GPG-KEY-rpm-sign |         gpgkey=https://occlum.io/occlum-package-repos/rpm-repo/RPM-GPG-KEY-rpm-sign | ||||||
|         gpgcakey=https://occlum.io/occlum-package-repos/rpm-repo/RPM-GPG-KEY-rpm-sign-ca |         gpgcakey=https://occlum.io/occlum-package-repos/rpm-repo/RPM-GPG-KEY-rpm-sign-ca | ||||||
|         EOF" |         EOF" | ||||||
|         docker exec centos bash -c "yum --showduplicate list -y occlum; yum install -y occlum" |         docker exec centos bash -c "yum --showduplicate list -y occlum | grep -n5 ${{ env.OCCLUM_VERSION }} && yum install -y occlum" | ||||||
| 
 | 
 | ||||||
|     - name: Hello world test |     - name: Hello world test | ||||||
|       run: docker exec centos bash -c "source /etc/profile; cd /root; rm -rf hello_world*; wget https://raw.githubusercontent.com/occlum/occlum/master/demos/hello_c/hello_world.c; occlum-gcc -o hello_world hello_world.c; |       run: docker exec centos bash -c "source /etc/profile; cd /root; rm -rf hello_world*; wget https://raw.githubusercontent.com/occlum/occlum/master/demos/hello_c/hello_world.c; occlum-gcc -o hello_world hello_world.c; | ||||||
|             occlum new occlum-instance; cp hello_world /root/occlum-instance/image/bin; cd /root/occlum-instance && SGX_MODE=SIM occlum build; occlum run /bin/hello_world" |             occlum new occlum-instance; cp hello_world /root/occlum-instance/image/bin; cd /root/occlum-instance && SGX_MODE=SIM occlum build; occlum run /bin/hello_world" | ||||||
|  | 
 | ||||||
|  |     # If there is no match, it will return 1. | ||||||
|  |     - name: Check installed version | ||||||
|  |       run: docker exec centos bash -c "cat /opt/occlum/include/occlum_version.h | grep -n5 ${{ env.OCCLUM_VERSION }}" | ||||||
|  | |||||||
| @ -22,7 +22,8 @@ override_dh_auto_build: | |||||||
| 
 | 
 | ||||||
| override_dh_install: | override_dh_install: | ||||||
| 	# install Occlum | 	# install Occlum | ||||||
| 	cd $(deb_build_dir)/occlum-$(VERSION)/occlum-src; OCCLUM_RELEASE_BUILD=1 OCCLUM_PREFIX=$(buildroot)/opt/occlum make install | 	cd $(deb_build_dir)/occlum-$(VERSION)/occlum-src; source /opt/intel/sgxsdk/environment; \ | ||||||
|  | 	OCCLUM_RELEASE_BUILD=1 OCCLUM_PREFIX=$(buildroot)/opt/occlum make install | ||||||
| 	mkdir -p $(buildroot)/etc/profile.d | 	mkdir -p $(buildroot)/etc/profile.d | ||||||
| 	cp $(deb_build_dir)/occlum-$(VERSION)/debian/{occlum-pal.sh,occlum-runtime.sh} $(buildroot)/etc/profile.d | 	cp $(deb_build_dir)/occlum-$(VERSION)/debian/{occlum-pal.sh,occlum-runtime.sh} $(buildroot)/etc/profile.d | ||||||
| 	chmod 644 $(buildroot)/etc/profile.d/{occlum-pal.sh,occlum-runtime.sh} | 	chmod 644 $(buildroot)/etc/profile.d/{occlum-pal.sh,occlum-runtime.sh} | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user