-
Notifications
You must be signed in to change notification settings - Fork 97
Expand file tree
/
Copy pathrelease-next-catalog-and-operator-image.yaml
More file actions
143 lines (139 loc) · 5.17 KB
/
release-next-catalog-and-operator-image.yaml
File metadata and controls
143 lines (139 loc) · 5.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#
# Copyright (c) 2019-2023 Red Hat, Inc.
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# Red Hat, Inc. - initial API and implementation
#
name: Release next catalog
on:
# manual trigger if required
workflow_dispatch:
inputs:
reason:
description: 'Reason to trigger a build'
required: false
push:
branches:
- main
jobs:
build-operator-image-multiarch:
strategy:
fail-fast: false
matrix:
runners: ['ubuntu-24.04', 'ubuntu-24.04-arm']
runs-on: ${{matrix.runners}}
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Set arch environment variable
run: |
if [[ ${{matrix.runners}} == 'ubuntu-24.04' ]]; then
echo arch="amd64" >> $GITHUB_ENV
else
echo arch="arm64" >> $GITHUB_ENV
fi
- name: Set short_sha environment variable
run: echo short_sha="$(git rev-parse --short=7 HEAD)" >> $GITHUB_ENV
- name: Login to quay.io
uses: docker/login-action@v2
with:
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
registry: quay.io
- name: Build operator image
run: |
docker buildx build \
--platform linux/${{env.arch}} \
--progress=plain \
--push \
-t quay.io/eclipse/che-operator:${{env.arch}}-${{env.short_sha}} .
publish-operator-manifest:
name: publish operator image
runs-on: ubuntu-24.04
needs: build-operator-image-multiarch
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Login to Quay.io
uses: docker/login-action@v2
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
- name: Set short_sha environment variable
run: echo short_sha="$(git rev-parse --short=7 HEAD)" >> $GITHUB_ENV
- name: publish
run: |
docker manifest create quay.io/eclipse/che-operator:next \
--amend quay.io/eclipse/che-operator:amd64-${{env.short_sha}} \
--amend quay.io/eclipse/che-operator:arm64-${{env.short_sha}}
docker manifest annotate quay.io/eclipse/che-operator:next \
quay.io/eclipse/che-operator:amd64-${{env.short_sha}} \
--os linux --arch amd64
docker manifest annotate quay.io/eclipse/che-operator:next \
quay.io/eclipse/che-operator:arm64-${{env.short_sha}} \
--os linux --arch arm64
docker manifest push quay.io/eclipse/che-operator:next
build-catalog:
runs-on: ubuntu-24.04
needs: publish-operator-manifest
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Install yq
run: sudo pip install yq
- name: Login to quay.io
uses: docker/login-action@v2
with:
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
registry: quay.io
- name: Build catalog source
run: |
${GITHUB_WORKSPACE}/build/scripts/olm/release-catalog.sh \
--channel next \
--image-tool docker \
--multi-arch \
--catalog-image quay.io/eclipse/eclipse-che-olm-catalog:next
build-catalog-with-digest:
runs-on: ubuntu-24.04
needs: build-catalog
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Install yq
run: sudo pip install yq
- name: Login to quay.io
uses: docker/login-action@v2
with:
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
registry: quay.io
- name: Build catalog source
run: |
${GITHUB_WORKSPACE}/build/scripts/release/editors-definitions.sh update-manager-yaml \
--yaml-path ${GITHUB_WORKSPACE}/config/manager/manager.yaml
${GITHUB_WORKSPACE}/build/scripts/release/samples.sh update-manager-yaml \
--yaml-path ${GITHUB_WORKSPACE}/config/manager/manager.yaml \
--index-json-url "https://raw.githubusercontent.com/eclipse-che/che-dashboard/main/packages/devfile-registry/air-gap/index.json"
make update-dev-resources
${GITHUB_WORKSPACE}/build/scripts/release/addDigests.sh -s $(make csv-path CHANNEL=next) -t next
${GITHUB_WORKSPACE}/build/scripts/olm/release-catalog.sh \
--channel next \
--image-tool docker \
--multi-arch \
--catalog-image quay.io/eclipse/eclipse-che-olm-catalog:next-digest \
--bundle-image quay.io/eclipse/eclipse-che-olm-bundle:$(make bundle-version CHANNEL=next)-digest