summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2023-11-07 11:53:36 +0100
committerGitHub <noreply@github.com>2023-11-07 11:53:36 +0100
commitc232bf435ac22cb8aa9e27218a62bb64ad9c759a (patch)
tree8e4f35b69fed4b093be0db9050ca1601aeafd47a /.github
parentf3537bc66b00c097df092af49cc23b95169c6296 (diff)
downloadspack-c232bf435ac22cb8aa9e27218a62bb64ad9c759a.tar.gz
spack-c232bf435ac22cb8aa9e27218a62bb64ad9c759a.tar.bz2
spack-c232bf435ac22cb8aa9e27218a62bb64ad9c759a.tar.xz
spack-c232bf435ac22cb8aa9e27218a62bb64ad9c759a.zip
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
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/build-containers.yml46
1 files changed, 22 insertions, 24 deletions
diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml
index 807bf6c858..880cf9c644 100644
--- a/.github/workflows/build-containers.yml
+++ b/.github/workflows/build-containers.yml
@@ -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 }}