mirror of
				https://github.com/ClusterCockpit/cc-backend
				synced 2025-11-01 00:15:05 +01:00 
			
		
		
		
	Update test workflow
This commit is contained in:
		
							
								
								
									
										331
									
								
								.github/workflows/Release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										331
									
								
								.github/workflows/Release.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,331 +0,0 @@ | ||||
| # See: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions | ||||
|  | ||||
| # Workflow name | ||||
| name: Release | ||||
|  | ||||
| # Run on tag push | ||||
| on: | ||||
|  push: | ||||
|   tags: | ||||
|   - '**' | ||||
|  | ||||
| jobs: | ||||
|  | ||||
|   # | ||||
|   # Build on AlmaLinux 8.5 using golang-1.18.2 | ||||
|   # | ||||
|   AlmaLinux-RPM-build: | ||||
|     runs-on: ubuntu-latest | ||||
|     # See: https://hub.docker.com/_/almalinux | ||||
|     container: almalinux:8.5 | ||||
|     # The job outputs link to the outputs of the 'rpmrename' step | ||||
|     # Only job outputs can be used in child jobs | ||||
|     outputs: | ||||
|       rpm : ${{steps.rpmrename.outputs.RPM}} | ||||
|       srpm : ${{steps.rpmrename.outputs.SRPM}} | ||||
|     steps: | ||||
|  | ||||
|     # Use dnf to install development packages | ||||
|     - name: Install development packages | ||||
|       run: | | ||||
|           dnf --assumeyes group install "Development Tools" "RPM Development Tools" | ||||
|           dnf --assumeyes install wget openssl-devel diffutils delve which npm | ||||
|           dnf --assumeyes install 'dnf-command(builddep)' | ||||
|  | ||||
|     # Checkout git repository and submodules | ||||
|     # fetch-depth must be 0 to use git describe | ||||
|     # See: https://github.com/marketplace/actions/checkout | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v2 | ||||
|       with: | ||||
|         submodules: recursive | ||||
|         fetch-depth: 0 | ||||
|  | ||||
|     # Use dnf to install build dependencies | ||||
|     - name: Install build dependencies | ||||
|       run: | | ||||
|           wget -q http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/golang-1.18.2-1.module_el8.7.0+1173+5d37c0fd.x86_64.rpm \ | ||||
|                   http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/golang-bin-1.18.2-1.module_el8.7.0+1173+5d37c0fd.x86_64.rpm \ | ||||
|                   http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/golang-src-1.18.2-1.module_el8.7.0+1173+5d37c0fd.noarch.rpm \ | ||||
|                   http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/go-toolset-1.18.2-1.module_el8.7.0+1173+5d37c0fd.x86_64.rpm | ||||
|           rpm -i go*.rpm | ||||
|           npm install --global yarn rollup svelte rollup-plugin-svelte | ||||
|           #dnf --assumeyes builddep build/package/cc-backend.spec | ||||
|  | ||||
|     - name: RPM build ClusterCockpit | ||||
|       id: rpmbuild | ||||
|       run: make RPM | ||||
|  | ||||
|     # AlmaLinux 8.5 is a derivate of RedHat Enterprise Linux 8 (UBI8), | ||||
|     # so the created RPM both contain the substring 'el8' in the RPM file names | ||||
|     # This step replaces the substring 'el8' to 'alma85'. It uses the move operation | ||||
|     # because it is unclear whether the default AlmaLinux 8.5 container contains the  | ||||
|     # 'rename' command. This way we also get the new names for output. | ||||
|     - name: Rename RPMs (s/el8/alma85/) | ||||
|       id: rpmrename | ||||
|       run: | | ||||
|         OLD_RPM="${{steps.rpmbuild.outputs.RPM}}" | ||||
|         OLD_SRPM="${{steps.rpmbuild.outputs.SRPM}}" | ||||
|         NEW_RPM="${OLD_RPM/el8/alma85}" | ||||
|         NEW_SRPM=${OLD_SRPM/el8/alma85} | ||||
|         mv "${OLD_RPM}" "${NEW_RPM}" | ||||
|         mv "${OLD_SRPM}" "${NEW_SRPM}" | ||||
|         echo "::set-output name=SRPM::${NEW_SRPM}" | ||||
|         echo "::set-output name=RPM::${NEW_RPM}" | ||||
|  | ||||
|     # See: https://github.com/actions/upload-artifact | ||||
|     - name: Save RPM as artifact | ||||
|       uses: actions/upload-artifact@v2 | ||||
|       with: | ||||
|         name: cc-backend RPM for AlmaLinux 8.5 | ||||
|         path: ${{ steps.rpmrename.outputs.RPM }} | ||||
|     - name: Save SRPM as artifact | ||||
|       uses: actions/upload-artifact@v2 | ||||
|       with: | ||||
|         name: cc-backend SRPM for AlmaLinux 8.5 | ||||
|         path: ${{ steps.rpmrename.outputs.SRPM }} | ||||
|  | ||||
|   # | ||||
|   # Build on UBI 8 using golang-1.18.2 | ||||
|   # | ||||
|   UBI-8-RPM-build: | ||||
|     runs-on: ubuntu-latest | ||||
|     # See: https://catalog.redhat.com/software/containers/ubi8/ubi/5c359854d70cc534b3a3784e?container-tabs=gti | ||||
|     container: registry.access.redhat.com/ubi8/ubi:8.5-226.1645809065 | ||||
|     # The job outputs link to the outputs of the 'rpmbuild' step | ||||
|     outputs: | ||||
|       rpm : ${{steps.rpmbuild.outputs.RPM}} | ||||
|       srpm : ${{steps.rpmbuild.outputs.SRPM}} | ||||
|     steps: | ||||
|  | ||||
|     # Use dnf to install development packages | ||||
|     - name: Install development packages | ||||
|       run: dnf --assumeyes --disableplugin=subscription-manager install rpm-build go-srpm-macros rpm-build-libs rpm-libs gcc make python38 git wget openssl-devel diffutils delve which | ||||
|  | ||||
|     # Checkout git repository and submodules | ||||
|     # fetch-depth must be 0 to use git describe | ||||
|     # See: https://github.com/marketplace/actions/checkout | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v2 | ||||
|       with: | ||||
|         submodules: recursive | ||||
|         fetch-depth: 0 | ||||
|  | ||||
|     # Use dnf to install build dependencies | ||||
|     - name: Install build dependencies | ||||
|       run: | | ||||
|           wget -q http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/golang-1.18.2-1.module_el8.7.0+1173+5d37c0fd.x86_64.rpm \ | ||||
|                   http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/golang-bin-1.18.2-1.module_el8.7.0+1173+5d37c0fd.x86_64.rpm \ | ||||
|                   http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/golang-src-1.18.2-1.module_el8.7.0+1173+5d37c0fd.noarch.rpm \ | ||||
|                   http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/go-toolset-1.18.2-1.module_el8.7.0+1173+5d37c0fd.x86_64.rpm | ||||
|           rpm -i go*.rpm | ||||
|           dnf --assumeyes --disableplugin=subscription-manager install npm | ||||
|           npm install --global yarn rollup svelte rollup-plugin-svelte | ||||
|           #dnf --assumeyes builddep build/package/cc-backend.spec | ||||
|  | ||||
|     - name: RPM build ClusterCockpit | ||||
|       id: rpmbuild | ||||
|       run: make RPM | ||||
|  | ||||
|     # See: https://github.com/actions/upload-artifact | ||||
|     - name: Save RPM as artifact | ||||
|       uses: actions/upload-artifact@v2 | ||||
|       with: | ||||
|         name: cc-backend RPM for UBI 8 | ||||
|         path: ${{ steps.rpmbuild.outputs.RPM }} | ||||
|     - name: Save SRPM as artifact | ||||
|       uses: actions/upload-artifact@v2 | ||||
|       with: | ||||
|         name: cc-backend SRPM for UBI 8 | ||||
|         path: ${{ steps.rpmbuild.outputs.SRPM }} | ||||
|  | ||||
|   # | ||||
|   # Build on Ubuntu 20.04 using official go 1.19.1 package | ||||
|   # | ||||
|   Ubuntu-focal-build: | ||||
|     runs-on: ubuntu-latest | ||||
|     container: ubuntu:20.04 | ||||
|     # The job outputs link to the outputs of the 'debrename' step | ||||
|     # Only job outputs can be used in child jobs | ||||
|     outputs: | ||||
|       deb : ${{steps.debrename.outputs.DEB}} | ||||
|     steps: | ||||
|     # Use apt to install development packages | ||||
|     - name: Install development packages | ||||
|       run: | | ||||
|           apt update && apt --assume-yes upgrade | ||||
|           apt --assume-yes install build-essential sed git wget bash | ||||
|           apt --assume-yes install npm | ||||
|           npm install --global yarn rollup svelte rollup-plugin-svelte | ||||
|     # Checkout git repository and submodules | ||||
|     # fetch-depth must be 0 to use git describe | ||||
|     # See: https://github.com/marketplace/actions/checkout | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v2 | ||||
|       with: | ||||
|         submodules: recursive | ||||
|         fetch-depth: 0 | ||||
|     # Use official golang package | ||||
|     - name: Install Golang | ||||
|       run: | | ||||
|           wget -q https://go.dev/dl/go1.19.1.linux-amd64.tar.gz | ||||
|           tar -C /usr/local -xzf go1.19.1.linux-amd64.tar.gz | ||||
|           export PATH=/usr/local/go/bin:/usr/local/go/pkg/tool/linux_amd64:$PATH | ||||
|           go version | ||||
|     - name: DEB build ClusterCockpit | ||||
|       id: dpkg-build | ||||
|       run: | | ||||
|           ls -la | ||||
|           pwd | ||||
|           env | ||||
|           export PATH=/usr/local/go/bin:/usr/local/go/pkg/tool/linux_amd64:$PATH | ||||
|           git config --global --add safe.directory $(pwd) | ||||
|           make DEB | ||||
|     - name: Rename DEB (add '_ubuntu20.04') | ||||
|       id: debrename | ||||
|       run: | | ||||
|         OLD_DEB_NAME=$(echo "${{steps.dpkg-build.outputs.DEB}}" | rev | cut -d '.' -f 2- | rev) | ||||
|         NEW_DEB_FILE="${OLD_DEB_NAME}_ubuntu20.04.deb" | ||||
|         mv "${{steps.dpkg-build.outputs.DEB}}" "${NEW_DEB_FILE}" | ||||
|         echo "::set-output name=DEB::${NEW_DEB_FILE}" | ||||
|     # See: https://github.com/actions/upload-artifact | ||||
|     - name: Save DEB as artifact | ||||
|       uses: actions/upload-artifact@v2 | ||||
|       with: | ||||
|         name: cc-backend DEB for Ubuntu 20.04 | ||||
|         path: ${{ steps.debrename.outputs.DEB }} | ||||
|  | ||||
|   # | ||||
|   # Build on Ubuntu 20.04 using official go 1.19.1 package | ||||
|   # | ||||
|   Ubuntu-jammy-build: | ||||
|     runs-on: ubuntu-latest | ||||
|     container: ubuntu:22.04 | ||||
|     # The job outputs link to the outputs of the 'debrename' step | ||||
|     # Only job outputs can be used in child jobs | ||||
|     outputs: | ||||
|       deb : ${{steps.debrename.outputs.DEB}} | ||||
|     steps: | ||||
|     # Use apt to install development packages | ||||
|     - name: Install development packages | ||||
|       run: | | ||||
|           apt update && apt --assume-yes upgrade | ||||
|           apt --assume-yes install build-essential sed git wget bash npm | ||||
|           npm install --global yarn rollup svelte rollup-plugin-svelte | ||||
|     # Checkout git repository and submodules | ||||
|     # fetch-depth must be 0 to use git describe | ||||
|     # See: https://github.com/marketplace/actions/checkout | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v2 | ||||
|       with: | ||||
|         submodules: recursive | ||||
|         fetch-depth: 0 | ||||
|     # Use official golang package | ||||
|     - name: Install Golang | ||||
|       run: | | ||||
|           wget -q https://go.dev/dl/go1.19.1.linux-amd64.tar.gz | ||||
|           tar -C /usr/local -xzf go1.19.1.linux-amd64.tar.gz | ||||
|           export PATH=/usr/local/go/bin:/usr/local/go/pkg/tool/linux_amd64:$PATH | ||||
|           go version | ||||
|     - name: DEB build ClusterCockpit | ||||
|       id: dpkg-build | ||||
|       run: | | ||||
|           ls -la | ||||
|           pwd | ||||
|           env | ||||
|           export PATH=/usr/local/go/bin:/usr/local/go/pkg/tool/linux_amd64:$PATH | ||||
|           git config --global --add safe.directory $(pwd) | ||||
|           make DEB | ||||
|     - name: Rename DEB (add '_ubuntu22.04') | ||||
|       id: debrename | ||||
|       run: | | ||||
|         OLD_DEB_NAME=$(echo "${{steps.dpkg-build.outputs.DEB}}" | rev | cut -d '.' -f 2- | rev) | ||||
|         NEW_DEB_FILE="${OLD_DEB_NAME}_ubuntu22.04.deb" | ||||
|         mv "${{steps.dpkg-build.outputs.DEB}}" "${NEW_DEB_FILE}" | ||||
|         echo "::set-output name=DEB::${NEW_DEB_FILE}" | ||||
|     # See: https://github.com/actions/upload-artifact | ||||
|     - name: Save DEB as artifact | ||||
|       uses: actions/upload-artifact@v2 | ||||
|       with: | ||||
|         name: cc-backend DEB for Ubuntu 22.04 | ||||
|         path: ${{ steps.debrename.outputs.DEB }} | ||||
|  | ||||
|   # | ||||
|   # Create release with fresh RPMs | ||||
|   # | ||||
|   Release: | ||||
|     runs-on: ubuntu-latest | ||||
|     # We need the RPMs, so add dependency | ||||
|     needs: [AlmaLinux-RPM-build, UBI-8-RPM-build, Ubuntu-focal-build, Ubuntu-jammy-build] | ||||
|  | ||||
|     steps: | ||||
|     # See: https://github.com/actions/download-artifact | ||||
|     - name: Download AlmaLinux 8.5 RPM | ||||
|       uses: actions/download-artifact@v2 | ||||
|       with: | ||||
|         name: cc-backend RPM for AlmaLinux 8.5 | ||||
|     - name: Download AlmaLinux 8.5 SRPM | ||||
|       uses: actions/download-artifact@v2 | ||||
|       with: | ||||
|         name: cc-backend SRPM for AlmaLinux 8.5 | ||||
|      | ||||
|     - name: Download UBI 8 RPM | ||||
|       uses: actions/download-artifact@v2 | ||||
|       with: | ||||
|         name: cc-backend RPM for UBI 8 | ||||
|     - name: Download UBI 8 SRPM | ||||
|       uses: actions/download-artifact@v2 | ||||
|       with: | ||||
|         name: cc-backend SRPM for UBI 8 | ||||
|  | ||||
|     - name: Download Ubuntu 20.04 DEB | ||||
|       uses: actions/download-artifact@v2 | ||||
|       with: | ||||
|         name: cc-backend DEB for Ubuntu 20.04 | ||||
|  | ||||
|     - name: Download Ubuntu 22.04 DEB | ||||
|       uses: actions/download-artifact@v2 | ||||
|       with: | ||||
|         name: cc-backend DEB for Ubuntu 22.04 | ||||
|  | ||||
|     # The download actions do not publish the name of the downloaded file, | ||||
|     # so we re-use the job outputs of the parent jobs. The files are all | ||||
|     # downloaded to the current folder. | ||||
|     # The gh-release action afterwards does not accept file lists but all | ||||
|     # files have to be listed at 'files'. The step creates one output per | ||||
|     # RPM package (2 per distro) | ||||
|     - name: Set RPM variables | ||||
|       id: files | ||||
|       run: | | ||||
|         ALMA_85_RPM=$(basename "${{ needs.AlmaLinux-RPM-build.outputs.rpm}}") | ||||
|         ALMA_85_SRPM=$(basename "${{ needs.AlmaLinux-RPM-build.outputs.srpm}}") | ||||
|         UBI_8_RPM=$(basename "${{ needs.UBI-8-RPM-build.outputs.rpm}}") | ||||
|         UBI_8_SRPM=$(basename "${{ needs.UBI-8-RPM-build.outputs.srpm}}") | ||||
|         U_2004_DEB=$(basename "${{ needs.Ubuntu-focal-build.outputs.deb}}") | ||||
|         U_2204_DEB=$(basename "${{ needs.Ubuntu-jammy-build.outputs.deb}}") | ||||
|         echo "ALMA_85_RPM::${ALMA_85_RPM}" | ||||
|         echo "ALMA_85_SRPM::${ALMA_85_SRPM}" | ||||
|         echo "UBI_8_RPM::${UBI_8_RPM}" | ||||
|         echo "UBI_8_SRPM::${UBI_8_SRPM}" | ||||
|         echo "U_2004_DEB::${U_2004_DEB}" | ||||
|         echo "U_2204_DEB::${U_2204_DEB}" | ||||
|         echo "::set-output name=ALMA_85_RPM::${ALMA_85_RPM}" | ||||
|         echo "::set-output name=ALMA_85_SRPM::${ALMA_85_SRPM}" | ||||
|         echo "::set-output name=UBI_8_RPM::${UBI_8_RPM}" | ||||
|         echo "::set-output name=UBI_8_SRPM::${UBI_8_SRPM}" | ||||
|         echo "::set-output name=U_2004_DEB::${U_2004_DEB}" | ||||
|         echo "::set-output name=U_2204_DEB::${U_2204_DEB}" | ||||
|  | ||||
|     # See: https://github.com/softprops/action-gh-release | ||||
|     - name: Release | ||||
|       uses: softprops/action-gh-release@v1 | ||||
|       if: startsWith(github.ref, 'refs/tags/') | ||||
|       with: | ||||
|         name: cc-backend-${{github.ref_name}} | ||||
|         files: | | ||||
|          ${{ steps.files.outputs.ALMA_85_RPM }} | ||||
|          ${{ steps.files.outputs.ALMA_85_SRPM }} | ||||
|          ${{ steps.files.outputs.UBI_8_RPM }} | ||||
|          ${{ steps.files.outputs.UBI_8_SRPM }} | ||||
|          ${{ steps.files.outputs.U_2004_DEB }} | ||||
|          ${{ steps.files.outputs.U_2204_DEB }} | ||||
							
								
								
									
										2
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @@ -7,7 +7,7 @@ jobs: | ||||
|       - name: Install Go | ||||
|         uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version: 1.22.x | ||||
|           go-version: 1.24.x | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Build, Vet & Test | ||||
|   | ||||
		Reference in New Issue
	
	Block a user