Skip to content

Commit 4187e76

Browse files
committed
image: replace with CF variant
1 parent 5be9aca commit 4187e76

1 file changed

Lines changed: 43 additions & 101 deletions

File tree

.github/workflows/image.yaml

Lines changed: 43 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -3,117 +3,59 @@ name: Image
33
on:
44
push:
55
branches:
6-
- master
7-
pull_request:
8-
branches:
9-
- master
10-
types: [ labeled, unlabeled, opened, synchronize, reopened ]
11-
12-
concurrency:
13-
group: ${{ github.workflow }}-${{ github.ref }}
14-
cancel-in-progress: true
6+
- "sync-*" # Codefresh change instead of `master`
157

16-
permissions: {}
8+
env:
9+
GOLANG_VERSION: "1.22"
1710

1811
jobs:
19-
set-vars:
20-
permissions:
21-
contents: read
22-
if: github.repository == 'argoproj/argo-cd'
23-
runs-on: ubuntu-22.04
24-
outputs:
25-
image-tag: ${{ steps.image.outputs.tag}}
26-
platforms: ${{ steps.platforms.outputs.platforms }}
12+
publish:
13+
runs-on: ubuntu-latest
14+
env:
15+
GOPATH: /home/runner/work/argo-cd/argo-cd
2716
steps:
17+
- uses: actions/setup-go@0caeaed6fd66a828038c2da3c0f662a42862658f # v1.1.3
18+
with:
19+
go-version: ${{ env.GOLANG_VERSION }}
2820
- uses: actions/checkout@8410ad0602e1e429cee44a835ae9f77f654a6694 # v4.0.0
21+
with:
22+
path: src/github.com/argoproj/argo-cd
2923

30-
- name: Set image tag for ghcr
31-
run: echo "tag=$(cat ./VERSION)-${GITHUB_SHA::8}" >> $GITHUB_OUTPUT
24+
# get image tag
25+
- run: echo ::set-output name=tag::$(cat ./VERSION)-${GITHUB_SHA::8}
26+
working-directory: ./src/github.com/argoproj/argo-cd
3227
id: image
3328

34-
- name: Determine image platforms to use
35-
id: platforms
29+
# build
30+
- run: |
31+
docker images -a --format "{{.ID}}" | xargs -I {} docker rmi {}
32+
make image DEV_IMAGE=true DOCKER_PUSH=false IMAGE_NAMESPACE=ghcr.io/codefresh-io IMAGE_TAG=${{ steps.image.outputs.tag }}
33+
working-directory: ./src/github.com/argoproj/argo-cd
34+
- run: |
35+
docker login ghcr.io --username $USERNAME --password $PASSWORD
36+
docker push ghcr.io/codefresh-io/argocd:${{ steps.image.outputs.tag }}
37+
env:
38+
USERNAME: ${{ github.repository_owner }}
39+
PASSWORD: ${{ secrets.TOKEN }}
40+
# Codefresh step
41+
- name: Push docker image to quay repository
42+
env:
43+
QUAY_USERNAME: ${{ secrets.RELEASE_QUAY_USERNAME }}
44+
QUAY_TOKEN: ${{ secrets.RELEASE_QUAY_TOKEN }}
45+
IMAGE_NAMESPACE: quay.io/codefresh
3646
run: |
37-
IMAGE_PLATFORMS=linux/amd64
38-
if [[ "${{ github.event_name }}" == "push" || "${{ contains(github.event.pull_request.labels.*.name, 'test-multi-image') }}" == "true" ]]
39-
then
40-
IMAGE_PLATFORMS=linux/amd64,linux/arm64,linux/s390x,linux/ppc64le
41-
fi
42-
echo "Building image for platforms: $IMAGE_PLATFORMS"
43-
echo "platforms=$IMAGE_PLATFORMS" >> $GITHUB_OUTPUT
44-
45-
build-only:
46-
needs: [set-vars]
47-
permissions:
48-
contents: read
49-
packages: write # for pushing packages to GHCR, which is used by cd.apps.argoproj.io to avoid polluting Quay with tags
50-
id-token: write # for creating OIDC tokens for signing.
51-
if: ${{ github.repository == 'argoproj/argo-cd' && github.event_name != 'push' }}
52-
uses: ./.github/workflows/image-reuse.yaml
53-
with:
54-
# Note: cannot use env variables to set go-version (https://docs.github.com/en/actions/using-workflows/reusing-workflows#limitations)
55-
# renovate: datasource=golang-version packageName=golang
56-
go-version: 1.23.3
57-
platforms: ${{ needs.set-vars.outputs.platforms }}
58-
push: false
59-
60-
build-and-publish:
61-
needs: [set-vars]
62-
permissions:
63-
contents: read
64-
packages: write # for pushing packages to GHCR, which is used by cd.apps.argoproj.io to avoid polluting Quay with tags
65-
id-token: write # for creating OIDC tokens for signing.
66-
if: ${{ github.repository == 'argoproj/argo-cd' && github.event_name == 'push' }}
67-
uses: ./.github/workflows/image-reuse.yaml
68-
with:
69-
quay_image_name: quay.io/argoproj/argocd:latest
70-
ghcr_image_name: ghcr.io/argoproj/argo-cd/argocd:${{ needs.set-vars.outputs.image-tag }}
71-
# Note: cannot use env variables to set go-version (https://docs.github.com/en/actions/using-workflows/reusing-workflows#limitations)
72-
# renovate: datasource=golang-version packageName=golang
73-
go-version: 1.23.3
74-
platforms: ${{ needs.set-vars.outputs.platforms }}
75-
push: true
76-
secrets:
77-
quay_username: ${{ secrets.RELEASE_QUAY_USERNAME }}
78-
quay_password: ${{ secrets.RELEASE_QUAY_TOKEN }}
79-
ghcr_username: ${{ github.actor }}
80-
ghcr_password: ${{ secrets.GITHUB_TOKEN }}
81-
82-
build-and-publish-provenance: # Push attestations to GHCR, latest image is polluting quay.io
83-
needs:
84-
- build-and-publish
85-
permissions:
86-
actions: read # for detecting the Github Actions environment.
87-
id-token: write # for creating OIDC tokens for signing.
88-
packages: write # for uploading attestations. (https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/container/README.md#known-issues)
89-
if: ${{ github.repository == 'argoproj/argo-cd' && github.event_name == 'push' }}
90-
# Must be refernced by a tag. https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/container/README.md#referencing-the-slsa-generator
91-
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_container_slsa3.yml@v2.0.0
92-
with:
93-
image: ghcr.io/argoproj/argo-cd/argocd
94-
digest: ${{ needs.build-and-publish.outputs.image-digest }}
95-
registry-username: ${{ github.actor }}
96-
secrets:
97-
registry-password: ${{ secrets.GITHUB_TOKEN }}
98-
99-
Deploy:
100-
needs:
101-
- build-and-publish
102-
- set-vars
103-
permissions:
104-
contents: write # for git to push upgrade commit if not already deployed
105-
packages: write # for pushing packages to GHCR, which is used by cd.apps.argoproj.io to avoid polluting Quay with tags
106-
if: ${{ github.repository == 'argoproj/argo-cd' && github.event_name == 'push' }}
107-
runs-on: ubuntu-22.04
108-
steps:
109-
- uses: actions/checkout@8410ad0602e1e429cee44a835ae9f77f654a6694 # v4.0.0
110-
- run: git clone "https://$TOKEN@github.com/argoproj/argoproj-deployments"
47+
set -ue
48+
docker login quay.io --username "${QUAY_USERNAME}" --password "${QUAY_TOKEN}"
49+
docker tag ghcr.io/codefresh-io/argocd:${{ steps.image.outputs.tag }} ${IMAGE_NAMESPACE}/argocd:latest
50+
docker push ${IMAGE_NAMESPACE}/argocd:latest
51+
# deploy
52+
- run: git clone "https://$TOKEN@github.com/codefresh-io/argoproj-deployments"
11153
env:
11254
TOKEN: ${{ secrets.TOKEN }}
11355
- run: |
114-
docker run -u $(id -u):$(id -g) -v $(pwd):/src -w /src --rm -t ghcr.io/argoproj/argo-cd/argocd:${{ needs.set-vars.outputs.image-tag }} kustomize edit set image quay.io/argoproj/argocd=ghcr.io/argoproj/argo-cd/argocd:${{ needs.set-vars.outputs.image-tag }}
115-
git config --global user.email 'ci@argoproj.com'
116-
git config --global user.name 'CI'
117-
git diff --exit-code && echo 'Already deployed' || (git commit -am 'Upgrade argocd to ${{ needs.set-vars.outputs.image-tag }}' && git push)
56+
docker run -v $(pwd):/src -w /src --rm -t lyft/kustomizer:v3.3.0 kustomize edit set image quay.io/argoproj/argocd=ghcr.io/codefresh-io/argocd:${{ steps.image.outputs.tag }}
57+
git config --global user.email 'integration@codefresh.io'
58+
git config --global user.name 'CI-Codefresh'
59+
git diff --exit-code && echo 'Already deployed' || (git commit -am 'Upgrade argocd to ${{ steps.image.outputs.tag }}' && git push)
60+
if: github.event_name == 'push'
11861
working-directory: argoproj-deployments/argocd
119-

0 commit comments

Comments
 (0)