Change container labeling so that "latest" is the latest tag (#40593)
* Use `major.minor.patch`, `major.minor`, `major` in tags * Ensure `latest` is the semver largest version, and not "latest in time" * Remove Ubuntu 18.04 from the list of images
This commit is contained in:
		 Massimiliano Culpo
					Massimiliano Culpo
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							f3537bc66b
						
					
				
				
					commit
					c232bf435a
				
			
							
								
								
									
										46
									
								
								.github/workflows/build-containers.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										46
									
								
								.github/workflows/build-containers.yml
									
									
									
									
										vendored
									
									
								
							| @@ -38,12 +38,11 @@ jobs: | ||||
|         # Meaning of the various items in the matrix list | ||||
|         # 0: Container name (e.g. ubuntu-bionic) | ||||
|         # 1: Platforms to build for | ||||
|         # 2: Base image (e.g. ubuntu:18.04) | ||||
|         # 2: Base image (e.g. ubuntu:22.04) | ||||
|         dockerfile: [[amazon-linux, 'linux/amd64,linux/arm64', 'amazonlinux:2'], | ||||
|                      [centos7, 'linux/amd64,linux/arm64,linux/ppc64le', 'centos:7'], | ||||
|                      [centos-stream, 'linux/amd64,linux/arm64,linux/ppc64le', 'centos:stream'], | ||||
|                      [leap15, 'linux/amd64,linux/arm64,linux/ppc64le', 'opensuse/leap:15'], | ||||
|                      [ubuntu-bionic, 'linux/amd64,linux/arm64,linux/ppc64le', 'ubuntu:18.04'], | ||||
|                      [ubuntu-focal, 'linux/amd64,linux/arm64,linux/ppc64le', 'ubuntu:20.04'], | ||||
|                      [ubuntu-jammy, 'linux/amd64,linux/arm64,linux/ppc64le', 'ubuntu:22.04'], | ||||
|                      [almalinux8, 'linux/amd64,linux/arm64,linux/ppc64le', 'almalinux:8'], | ||||
| @@ -58,18 +57,20 @@ jobs: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # @v2 | ||||
|  | ||||
|       - name: Set Container Tag Normal (Nightly) | ||||
|         run: | | ||||
|           container="${{ matrix.dockerfile[0] }}:latest" | ||||
|           echo "container=${container}" >> $GITHUB_ENV | ||||
|           echo "versioned=${container}" >> $GITHUB_ENV | ||||
|  | ||||
|         # On a new release create a container with the same tag as the release. | ||||
|       - name: Set Container Tag on Release | ||||
|         if: github.event_name == 'release' | ||||
|         run: | | ||||
|           versioned="${{matrix.dockerfile[0]}}:${GITHUB_REF##*/}" | ||||
|           echo "versioned=${versioned}" >> $GITHUB_ENV | ||||
|       - uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 | ||||
|         id: docker_meta | ||||
|         with: | ||||
|           images: | | ||||
|               ghcr.io/${{ github.repository_owner }}/${{ matrix.dockerfile[0] }} | ||||
|               ${{ github.repository_owner }}/${{ matrix.dockerfile[0] }} | ||||
|           tags: | | ||||
|               type=schedule,pattern=nightly | ||||
|               type=schedule,pattern=develop | ||||
|               type=semver,pattern={{version}} | ||||
|               type=semver,pattern={{major}}.{{minor}} | ||||
|               type=semver,pattern={{major}} | ||||
|               type=ref,event=branch | ||||
|               type=ref,event=pr | ||||
|  | ||||
|       - name: Generate the Dockerfile | ||||
|         env: | ||||
| @@ -92,13 +93,13 @@ jobs: | ||||
|           path: dockerfiles | ||||
|  | ||||
|       - name: Set up QEMU | ||||
|         uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # @v1 | ||||
|         uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 | ||||
|  | ||||
|       - name: Set up Docker Buildx | ||||
|         uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # @v1 | ||||
|         uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 | ||||
|  | ||||
|       - name: Log in to GitHub Container Registry | ||||
|         uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # @v1 | ||||
|         uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d | ||||
|         with: | ||||
|           registry: ghcr.io | ||||
|           username: ${{ github.actor }} | ||||
| @@ -106,21 +107,18 @@ jobs: | ||||
|  | ||||
|       - name: Log in to DockerHub | ||||
|         if: github.event_name != 'pull_request' | ||||
|         uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # @v1 | ||||
|         uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d | ||||
|         with: | ||||
|           username: ${{ secrets.DOCKERHUB_USERNAME }} | ||||
|           password: ${{ secrets.DOCKERHUB_TOKEN }} | ||||
|  | ||||
|       - name: Build & Deploy ${{ matrix.dockerfile[0] }} | ||||
|         uses: docker/build-push-action@0565240e2d4ab88bba5387d719585280857ece09 # @v2 | ||||
|         uses: docker/build-push-action@0565240e2d4ab88bba5387d719585280857ece09 | ||||
|         with: | ||||
|           context: dockerfiles/${{ matrix.dockerfile[0] }} | ||||
|           platforms: ${{ matrix.dockerfile[1] }} | ||||
|           push: ${{ github.event_name != 'pull_request' }} | ||||
|           cache-from: type=gha | ||||
|           cache-to: type=gha,mode=max | ||||
|           tags: | | ||||
|             spack/${{ env.container }} | ||||
|             spack/${{ env.versioned }} | ||||
|             ghcr.io/spack/${{ env.container }} | ||||
|             ghcr.io/spack/${{ env.versioned }} | ||||
|           tags: ${{ steps.docker_meta.outputs.tags }} | ||||
|           labels: ${{ steps.docker_meta.outputs.labels }} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user