Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
ef3a4c4
add zizmor
vszakats Oct 23, 2025
b6f172b
fixup EOLs at EOF
vszakats Oct 23, 2025
4c1f804
say why we need `packages: write` permissions
vszakats Oct 23, 2025
0b8e842
avoid GH macros in shell code
vszakats Oct 23, 2025
d492291
avoid GH macros in shell code 2
vszakats Oct 23, 2025
feb95f7
build_master_dev.yml drop redundant cosign privkey save step
vszakats Oct 23, 2025
873353f
avoid GH macros in shell code 3
vszakats Oct 23, 2025
ec960e5
build_master_dev.yml drop redundant cosign pubkey save step
vszakats Oct 23, 2025
fc869d6
add spellchecker: typos
vszakats Oct 23, 2025
b1fd407
fix typos
vszakats Oct 23, 2025
33ae0fa
fix some issues reported by yamllint
vszakats Oct 23, 2025
7608628
fix some issues reported by yamllint 2
vszakats Oct 23, 2025
1714800
fix some issues reported by yamllint 3
vszakats Oct 23, 2025
0a9104d
whitespace
vszakats Oct 23, 2025
8bfd42e
whitespace 2
vszakats Oct 23, 2025
23d7315
drop cosign.pub steps, the pubkey is in the git repo root
vszakats Oct 23, 2025
9343d15
01-design.md: replace UTF-8 line-drawing chars with ASCII-7
vszakats Oct 23, 2025
64e5503
checksrc.yml cleanup
vszakats Oct 23, 2025
bef1a70
try using grype and trivy from Linuxbrew
vszakats Oct 23, 2025
d8980c6
make GHA macro formatting consistent
vszakats Oct 23, 2025
d226415
make GHA macro formatting consistent 2
vszakats Oct 23, 2025
127cf6b
make CI jobs testable without docker hub/quay login creds
vszakats Oct 23, 2025
0fc9742
try something
vszakats Oct 24, 2025
c60f74c
cleanup
vszakats Oct 24, 2025
44e9f05
cleanup-2
vszakats Oct 24, 2025
8da2e64
build_ci_multi.yml: split logins to separate workflow to verify them,…
vszakats Oct 24, 2025
79b5969
build_ci_multi.yml drop matrix, it had a single item, with an unused …
vszakats Oct 24, 2025
1fc95eb
build_ci_multi.yml cleanup
vszakats Oct 24, 2025
c976fad
build_ci_multi.yml cleanup 2
vszakats Oct 24, 2025
a4e66eb
build_ci_multi.yml cleanup 3
vszakats Oct 24, 2025
f8fc6b3
build_ci_multi: pass secret via stdin from builtin command echo
vszakats Oct 24, 2025
f984232
narrow scope of ghcr cred envs
vszakats Oct 24, 2025
b7fec65
build_ci_multi.yml try ghcr creds
vszakats Oct 24, 2025
a38ca9a
fixup
vszakats Oct 24, 2025
93e34a2
try without podman-login action
vszakats Oct 24, 2025
93739c7
try without podman-login action fixup
vszakats Oct 24, 2025
65eb082
try simplify podman-login init
vszakats Oct 24, 2025
e64628b
pass secret via stdin in all jobs
vszakats Oct 24, 2025
fb0cf08
drop interim envs in redhat-actions/podman-login actions
vszakats Oct 24, 2025
285d228
cleanup
vszakats Oct 24, 2025
5d63fef
use secrets.GITHUB_TOKEN for consistency with other repos
vszakats Oct 24, 2025
994ad15
GHA: set/adjust concurrency
vszakats Oct 24, 2025
6f74aa4
ghcr: try logging in as repo owner instead of PR actor
vszakats Oct 24, 2025
8366313
replace ghcr user with curl (repo owner) (was: actor)
vszakats Oct 24, 2025
7a3b0c1
Revert "replace ghcr user with curl (repo owner) (was: actor)"
vszakats Oct 24, 2025
a241d76
cleanups
vszakats Oct 24, 2025
cc0cf45
cleanups
vszakats Oct 24, 2025
3df86df
try failed login
vszakats Oct 24, 2025
1328fa6
cleanup
vszakats Oct 24, 2025
67640e9
simplify direct ghcr.io
vszakats Oct 24, 2025
4d3476d
try applyinh curl apt-get tricks
vszakats Oct 25, 2025
86fd811
sync up two outlier "verify key" step names
vszakats Oct 27, 2025
1a4f2d1
GHA move step `name:` first when not there
vszakats Oct 27, 2025
471f54f
GHA: drop step name from actions/checkout steps
vszakats Oct 27, 2025
77c0646
GHA: sync up yaml strings to use single-quotes
vszakats Oct 27, 2025
2809b10
GHA: single-quote `name:` where missing
vszakats Oct 27, 2025
b1e2b3e
GHA: drop name: capitalization where missing
vszakats Oct 27, 2025
a5c3c7a
GHA: sync wording for some `name:`s
vszakats Oct 27, 2025
e201322
GHA: sync imperative `name:`
vszakats Oct 27, 2025
70c69c2
drop duplicate cosign install step
vszakats Oct 27, 2025
b4b2273
GHA: yaml: move env: before run: where not there
vszakats Oct 27, 2025
0f2e9b3
redhat-actions/podman-login upside/downside
vszakats Oct 27, 2025
392d089
redhat-actions/podman-login upside/downside updated
vszakats Oct 27, 2025
bb8f07c
try a little build speed optimization
vszakats Oct 28, 2025
c433a61
replace undefined matrix variables with static names
vszakats Nov 11, 2025
c688267
quote yaml secrets where missing for consistency
vszakats Nov 11, 2025
fee5e92
silence actionlint shellcheck
vszakats Nov 11, 2025
1aebbf2
build_latest_release_multi.yml consistent style for $REL refs
vszakats Nov 11, 2025
bab531a
build_latest_release_multi.yml fix remaining actionlint/shellcheck wa…
vszakats Nov 11, 2025
344910b
add actionlint job
vszakats Nov 11, 2025
5c3d2cf
drop actionlint exceptions
vszakats Nov 11, 2025
78559cd
actionlint settle
vszakats Nov 11, 2025
7e958d6
bump to actions/checkout 5.0.1
vszakats Nov 18, 2025
cfcfddf
pass cosign private key via stdin, instead of saving to disk
vszakats Nov 18, 2025
3749c86
checksrc.yml install first, then checkout
vszakats Nov 18, 2025
2b4fe4b
checksrc.yml install first, then checkout 2
vszakats Nov 18, 2025
77cdc08
sync apt-get perf/log noise improvements into build_* workflows
vszakats Nov 18, 2025
76362d6
*.yml drop matrices, they had a single item, with an unused value
vszakats Nov 19, 2025
c47bde4
actions/checkout 6
vszakats Nov 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Copyright (C) 2023 James Fuller, <jim@webcomposite.com>, et al.
#
# SPDX-License-Identifier: curl
# Copyright (C) 2023 James Fuller, <jim@webcomposite.com>, et al.
#
# SPDX-License-Identifier: curl
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ Send your suggestions using one of these methods:

3. as an [issue](https://github.com/curl/curl-container/issues)

/ The curl-container team!
/ The curl-container team!
115 changes: 81 additions & 34 deletions .github/workflows/build_ci_multi.yml
Original file line number Diff line number Diff line change
@@ -1,48 +1,95 @@
name: build_ci_multi_images
on:

'on':
pull_request:
types: [ opened, synchronize, reopened, labeled, unlabeled ]
types: [opened, synchronize, reopened, labeled, unlabeled]
branches:
- main

permissions: {}
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true

env:
REGISTRY_USER: ${{ github.actor }}
REGISTRY_PASSWORD: ${{ github.token }}
IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }}
permissions: {}

jobs:
build_multi_ci:
name: ${{ matrix.build.name }}
verify_secrets_ghcr:
name: 'Verify credentials'
runs-on: 'ubuntu-latest'
steps:
# upside: it logs out and aims to delete creds ~/.docker/config.json
# downside: extra dependency, uses -p instead of --password-stdin
- name: 'login ghcr.io (actor, via action)'
uses: redhat-actions/podman-login@4934294ad0449894bcd1e9f191899d7292469603 # v1.7
with:
username: '${{ github.actor }}'
password: '${{ secrets.GITHUB_TOKEN }}'
registry: 'ghcr.io/${{ github.repository_owner }}'

- name: 'login ghcr.io (actor, direct)'
env:
REGISTRY_USER: '${{ github.actor }}'
REGISTRY_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
run: |
podman --version
echo "${REGISTRY_TOKEN}" | podman login -u "${REGISTRY_USER}" --password-stdin "ghcr.io/${GITHUB_REPOSITORY_OWNER}"
docker --version
echo "${REGISTRY_TOKEN}" | docker login -u "${REGISTRY_USER}" --password-stdin "ghcr.io/${GITHUB_REPOSITORY_OWNER}"

- name: 'login ghcr.io (repo owner, direct)'
env:
REGISTRY_USER: '${{ github.repository_owner }}'
REGISTRY_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
IMAGE_REGISTRY: 'ghcr.io/${{ github.repository_owner }}'
run: |
podman --version
echo "${REGISTRY_TOKEN}" | podman login -u "${REGISTRY_USER}" --password-stdin "${IMAGE_REGISTRY}"
docker --version
echo "${REGISTRY_TOKEN}" | docker login -u "${REGISTRY_USER}" --password-stdin "${IMAGE_REGISTRY}"

verify_secrets_registries:
name: 'Verify credentials (docker hub, quay)'
runs-on: 'ubuntu-latest'
permissions:
contents: read
packages: write
strategy:
fail-fast: false
matrix:
install_latest: [ true ]
if: ${{ github.secret_source == 'Actions' }}
steps:
- name: "login docker hub"
- name: 'login docker hub'
env:
DOCKER_HUB_USER: '${{ secrets.DOCKER_HUB_USER }}'
DOCKER_HUB_TOKEN: '${{ secrets.DOCKER_HUB_TOKEN }}'
run: |
podman login -u ${{secrets.DOCKER_HUB_USER}} -p ${{secrets.DOCKER_HUB_TOKEN}} docker.io
docker login -u ${{secrets.DOCKER_HUB_USER}} -p ${{secrets.DOCKER_HUB_TOKEN}}
- name: "login quay.io"
echo "${DOCKER_HUB_TOKEN}" | podman login -u "${DOCKER_HUB_USER}" --password-stdin docker.io
echo "${DOCKER_HUB_TOKEN}" | docker login -u "${DOCKER_HUB_USER}" --password-stdin

- name: 'login quay.io'
env:
QUAY_USER: '${{ secrets.QUAY_USER }}'
QUAY_TOKEN: '${{ secrets.QUAY_TOKEN }}'
run: |
echo "${QUAY_TOKEN}" | podman login -u "${QUAY_USER}" --password-stdin quay.io
echo "${QUAY_TOKEN}" | docker login -u "${QUAY_USER}" --password-stdin quay.io

build_multi_ci:
name: 'build_multi_ci'
runs-on: 'ubuntu-latest'
steps:
- name: 'install dev deps'
run: |
podman login -u ${{secrets.QUAY_USER}} -p ${{secrets.QUAY_TOKEN}} quay.io
docker login -u ${{secrets.QUAY_USER}} -p ${{secrets.QUAY_TOKEN}} quay.io
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get -o Dpkg::Use-Pty=0 update
sudo rm -f /var/lib/man-db/auto-update
sudo apt-get -o Dpkg::Use-Pty=0 install -y \
qemu-user-static buildah less git make podman clamav clamav-freshclam

- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
- run: |
sudo apt-get update
sudo apt-get -y install qemu-user-static buildah less git make podman clamav clamav-freshclam
name: 'install dev deps'
- run: buildah unshare make branch_or_ref=master release_tag=master multibuild
name: 'build multi image'
- run: buildah unshare make dist_name=localhost/curl-multi release_tag=master test
name: 'test image'
- run: make image_name=localhost/curl-multi:master scan
name: 'security scan image'
- name: 'build multi image'
run: buildah unshare make branch_or_ref=master release_tag=master multibuild
- name: 'test image'
run: buildah unshare make dist_name=localhost/curl-multi release_tag=master test
- name: 'install scan prereqs'
run: /home/linuxbrew/.linuxbrew/bin/brew install grype trivy
- name: 'security scan image'
run: |
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
make image_name=localhost/curl-multi:master scan
182 changes: 94 additions & 88 deletions .github/workflows/build_latest_release_multi.yml
Original file line number Diff line number Diff line change
@@ -1,122 +1,128 @@
name: build_latest_release_multi_images
on:

'on':
push:
tags:
- '*'

permissions: {}
concurrency:
group: ${{ github.workflow }}-${{ github.sha }}
cancel-in-progress: true

env:
REGISTRY_USER: ${{ github.actor }}
REGISTRY_PASSWORD: ${{ github.token }}
IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }}
permissions: {}

jobs:
build_multi_latest_release_tag:
name: ${{ matrix.build.name }}
name: 'build_multi_master'
runs-on: 'ubuntu-latest'
permissions:
contents: read
packages: write
strategy:
fail-fast: false
matrix:
install_latest: [ true ]
packages: write # To create/update container on ghcr.io
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
tag_name: ${{ github.ref }}
- name: Log in to ghcr.io
- name: 'login ghcr.io'
uses: redhat-actions/podman-login@4934294ad0449894bcd1e9f191899d7292469603 # v1.7
with:
username: ${{ env.REGISTRY_USER }}
password: ${{ env.REGISTRY_PASSWORD }}
registry: ${{ env.IMAGE_REGISTRY }}
- name: "login docker hub"
username: '${{ github.actor }}'
password: '${{ secrets.GITHUB_TOKEN }}'
registry: 'ghcr.io/${{ github.repository_owner }}'
- name: 'login docker hub'
env:
DOCKER_HUB_USER: '${{ secrets.DOCKER_HUB_USER }}'
DOCKER_HUB_TOKEN: '${{ secrets.DOCKER_HUB_TOKEN }}'
run: |
podman login -u ${{secrets.DOCKER_HUB_USER}} -p ${{secrets.DOCKER_HUB_TOKEN}} docker.io
docker login -u ${{secrets.DOCKER_HUB_USER}} -p ${{secrets.DOCKER_HUB_TOKEN}}
- name: "login quay.io"
echo "${DOCKER_HUB_TOKEN}" | podman login -u "${DOCKER_HUB_USER}" --password-stdin docker.io
echo "${DOCKER_HUB_TOKEN}" | docker login -u "${DOCKER_HUB_USER}" --password-stdin
- name: 'login quay.io'
env:
QUAY_USER: '${{ secrets.QUAY_USER }}'
QUAY_TOKEN: '${{ secrets.QUAY_TOKEN }}'
run: |
podman login -u ${{secrets.QUAY_USER}} -p ${{secrets.QUAY_TOKEN}} quay.io
docker login -u ${{secrets.QUAY_USER}} -p ${{secrets.QUAY_TOKEN}} quay.io
- run: |
sudo apt-get update
sudo apt-get -y install qemu-user-static buildah less git make podman clamav clamav-freshclam
name: 'install dev deps'
- name: Sets env vars
echo "${QUAY_TOKEN}" | podman login -u "${QUAY_USER}" --password-stdin quay.io
echo "${QUAY_TOKEN}" | docker login -u "${QUAY_USER}" --password-stdin quay.io
- name: 'install dev deps'
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get -o Dpkg::Use-Pty=0 update
sudo rm -f /var/lib/man-db/auto-update
sudo apt-get -o Dpkg::Use-Pty=0 install -y \
qemu-user-static buildah less git make podman clamav clamav-freshclam
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
tag_name: ${{ github.ref }}
- name: 'set env vars'
run: |
release_tag_redirect=$(curl -s https://github.com/curl/curl/releases/latest -w'%{redirect_url}\n' -o /dev/null)
latest_release_ref=$(basename ${release_tag_redirect})
echo "TAG_REF=$latest_release_ref" >> $GITHUB_ENV
latest_release_ref=$(basename "${release_tag_redirect}")
echo "TAG_REF=$latest_release_ref" >> "$GITHUB_ENV"
rel=${latest_release_ref:5}
release_image_tag="${rel//_/.}"
echo "REL=$release_image_tag" >> $GITHUB_ENV
- run: buildah unshare make branch_or_ref=$TAG_REF release_tag=$REL multibuild
name: 'build multi image'
- run: buildah unshare make dist_name=localhost/curl-multi release_tag=$REL test
name: 'test image'
- run: make image_name=localhost/curl-multi:${REL} scan
name: 'security scan image'
- run: |
buildah manifest push --format v2s2 --all curl-multi:$REL "docker://ghcr.io/curl/curl-container/curl-multi:${REL}"
buildah manifest push --format v2s2 --all curl-base-multi:$REL "docker://ghcr.io/curl/curl-container/curl-base-multi:${REL}"
name: 'push images to github registry'
- name: Install Cosign
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
- name: Write signing key to disk (only needed for `cosign sign --key`)
run: echo "${{ secrets.COSIGN_PRIVATE_KEY }}" > cosign.key
- name: Sign images with sigstore key
echo "REL=$release_image_tag" >> "$GITHUB_ENV"
- name: 'build multi image'
run: buildah unshare make branch_or_ref="$TAG_REF" release_tag="$REL" multibuild
- name: 'test image'
run: buildah unshare make dist_name=localhost/curl-multi release_tag="$REL" test
- name: 'install scan prereqs'
run: /home/linuxbrew/.linuxbrew/bin/brew install grype trivy
- name: 'security scan image'
run: |
cosign sign -y --key cosign.key ghcr.io/curl/curl-container/curl-multi:$REL
cosign sign -y --key cosign.key ghcr.io/curl/curl-container/curl-base-multi:$REL
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
make image_name=localhost/curl-multi:"$REL" scan
- name: 'push images to github registry'
run: |
buildah manifest push --format v2s2 --all curl-multi:"$REL" docker://ghcr.io/curl/curl-container/curl-multi:"$REL"
buildah manifest push --format v2s2 --all curl-base-multi:"$REL" docker://ghcr.io/curl/curl-container/curl-base-multi:"$REL"
- name: 'install Cosign'
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
- name: 'sign images with sigstore key'
env:
COSIGN_PASSWORD: ${{secrets.COSIGN_PASSWORD}}
- name: Write public key to disk
run: echo "${{ secrets.COSIGN_PUBLIC_KEY }}" > cosign.pub
- name: Verify image with public key
COSIGN_PASSWORD: '${{ secrets.COSIGN_PASSWORD }}'
COSIGN_PRIVATE_KEY: '${{ secrets.COSIGN_PRIVATE_KEY }}'
run: |
cosign verify --key cosign.pub ghcr.io/curl/curl-container/curl-multi:$REL
cosign verify --key cosign.pub ghcr.io/curl/curl-container/curl-base-multi:$REL
- name: 'push release to docker hub'
echo "${COSIGN_PRIVATE_KEY}" | cosign sign -y --key /srv/stdin ghcr.io/curl/curl-container/curl-multi:"$REL"
echo "${COSIGN_PRIVATE_KEY}" | cosign sign -y --key /srv/stdin ghcr.io/curl/curl-container/curl-base-multi:"$REL"
- name: 'verify image with public key'
run: |
buildah manifest push --format v2s2 --all localhost/curl-multi:$REL "docker://docker.io/curlimages/curl:${REL}"
buildah manifest push --format v2s2 --all localhost/curl-multi:$REL "docker://docker.io/curlimages/curl:latest"
buildah manifest push --format v2s2 --all localhost/curl-base-multi:$REL "docker://docker.io/curlimages/curl-base:${REL}"
buildah manifest push --format v2s2 --all localhost/curl-base-multi:$REL "docker://docker.io/curlimages/curl-base:latest"
- name: Sign images with a sigstore key
cosign verify --key cosign.pub ghcr.io/curl/curl-container/curl-multi:"$REL"
cosign verify --key cosign.pub ghcr.io/curl/curl-container/curl-base-multi:"$REL"
- name: 'push release to docker hub'
run: |
cosign sign -y --key cosign.key docker.io/curlimages/curl:$REL
cosign sign -y --key cosign.key docker.io/curlimages/curl:latest
cosign sign -y --key cosign.key docker.io/curlimages/curl-base:$REL
cosign sign -y --key cosign.key docker.io/curlimages/curl-base:latest
buildah manifest push --format v2s2 --all localhost/curl-multi:"$REL" docker://docker.io/curlimages/curl:"$REL"
buildah manifest push --format v2s2 --all localhost/curl-multi:"$REL" docker://docker.io/curlimages/curl:latest
buildah manifest push --format v2s2 --all localhost/curl-base-multi:"$REL" docker://docker.io/curlimages/curl-base:"$REL"
buildah manifest push --format v2s2 --all localhost/curl-base-multi:"$REL" docker://docker.io/curlimages/curl-base:latest
- name: 'sign images with a sigstore key'
env:
COSIGN_PASSWORD: ${{secrets.COSIGN_PASSWORD}}
- name: Verify image
COSIGN_PASSWORD: '${{ secrets.COSIGN_PASSWORD }}'
COSIGN_PRIVATE_KEY: '${{ secrets.COSIGN_PRIVATE_KEY }}'
run: |
echo "${COSIGN_PRIVATE_KEY}" | cosign sign -y --key /srv/stdin docker.io/curlimages/curl:"$REL"
echo "${COSIGN_PRIVATE_KEY}" | cosign sign -y --key /srv/stdin docker.io/curlimages/curl:latest
echo "${COSIGN_PRIVATE_KEY}" | cosign sign -y --key /srv/stdin docker.io/curlimages/curl-base:"$REL"
echo "${COSIGN_PRIVATE_KEY}" | cosign sign -y --key /srv/stdin docker.io/curlimages/curl-base:latest
- name: 'verify image with public key'
run: |
cosign verify --key cosign.pub docker.io/curlimages/curl:$REL
cosign verify --key cosign.pub docker.io/curlimages/curl:"$REL"
cosign verify --key cosign.pub docker.io/curlimages/curl:latest
cosign verify --key cosign.pub docker.io/curlimages/curl-base:$REL
cosign verify --key cosign.pub docker.io/curlimages/curl-base:"$REL"
cosign verify --key cosign.pub docker.io/curlimages/curl-base:latest
- name: 'push release to quay.io'
run: |
buildah manifest push --format v2s2 --all localhost/curl-multi:$REL "docker://quay.io/curl/curl:${REL}"
buildah manifest push --format v2s2 --all localhost/curl-multi:$REL "docker://quay.io/curl/curl:latest"
buildah manifest push --format v2s2 --all localhost/curl-base-multi:$REL "docker://quay.io/curl/curl-base:${REL}"
buildah manifest push --format v2s2 --all localhost/curl-base-multi:$REL "docker://quay.io/curl/curl-base:latest"
- name: Sign images with a sigstore key
run: |
cosign sign -y --key cosign.key quay.io/curl/curl:$REL
cosign sign -y --key cosign.key quay.io/curl/curl:latest
cosign sign -y --key cosign.key quay.io/curl/curl-base:$REL
cosign sign -y --key cosign.key quay.io/curl/curl-base:latest
buildah manifest push --format v2s2 --all localhost/curl-multi:"$REL" docker://quay.io/curl/curl:"$REL"
buildah manifest push --format v2s2 --all localhost/curl-multi:"$REL" docker://quay.io/curl/curl:latest
buildah manifest push --format v2s2 --all localhost/curl-base-multi:"$REL" docker://quay.io/curl/curl-base:"$REL"
buildah manifest push --format v2s2 --all localhost/curl-base-multi:"$REL" docker://quay.io/curl/curl-base:latest
- name: 'sign images with a sigstore key'
env:
COSIGN_PASSWORD: ${{secrets.COSIGN_PASSWORD}}
- name: Verify image
COSIGN_PASSWORD: '${{ secrets.COSIGN_PASSWORD }}'
COSIGN_PRIVATE_KEY: '${{ secrets.COSIGN_PRIVATE_KEY }}'
run: |
echo "${COSIGN_PRIVATE_KEY}" | cosign sign -y --key /srv/stdin quay.io/curl/curl:"$REL"
echo "${COSIGN_PRIVATE_KEY}" | cosign sign -y --key /srv/stdin quay.io/curl/curl:latest
echo "${COSIGN_PRIVATE_KEY}" | cosign sign -y --key /srv/stdin quay.io/curl/curl-base:"$REL"
echo "${COSIGN_PRIVATE_KEY}" | cosign sign -y --key /srv/stdin quay.io/curl/curl-base:latest
- name: 'verify image with public key'
run: |
cosign verify --key cosign.pub quay.io/curl/curl:$REL
cosign verify --key cosign.pub quay.io/curl/curl:"$REL"
cosign verify --key cosign.pub quay.io/curl/curl:latest
cosign verify --key cosign.pub quay.io/curl/curl-base:$REL
cosign verify --key cosign.pub quay.io/curl/curl-base:latest
cosign verify --key cosign.pub quay.io/curl/curl-base:"$REL"
cosign verify --key cosign.pub quay.io/curl/curl-base:latest
Loading