Skip to content

Commit f348e2e

Browse files
committed
testing only
1 parent 2077e3d commit f348e2e

File tree

1 file changed

+58
-64
lines changed

1 file changed

+58
-64
lines changed

.github/workflows/release-image.yml

Lines changed: 58 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ on:
44
workflow_dispatch:
55
inputs:
66
version:
7-
description: "Release version"
7+
description: "Release version (e.g. v1.2.3)"
88
required: true
99
type: string
1010
authors:
11-
description: "Comma-separated list of author emails"
11+
description: "Comma-separated list of author emails (e.g. [email protected])"
1212
required: true
1313
type: string
1414
image_sha:
@@ -24,6 +24,7 @@ permissions:
2424
contents: write
2525
pull-requests: write
2626

27+
2728
jobs:
2829
# Image2commit: Creates a mapping between the image_sha given as input and the actual git commit
2930
# This is necassary for the release-image step that requires checking out that exact git commit
@@ -66,7 +67,6 @@ jobs:
6667
release-image:
6768
runs-on: ubuntu-latest
6869
environment: release
69-
needs: image2commit
7070
env:
7171
VERSION: ${{ github.event.inputs.version || 'test-0.0.0-dev' }}
7272
AUTHORS: ${{ github.event.inputs.authors || 'unknown' }}
@@ -95,15 +95,15 @@ jobs:
9595
uses: docker/login-action@v3
9696
with:
9797
registry: docker.io
98-
username: ${{ secrets.ANDRPAC_DOCKER_USERNAME }}
99-
password: ${{ secrets.ANDRPAC_DOCKER_PASSWORD }}
98+
username: ${{ secrets.DOCKER_USERNAME }}
99+
password: ${{ secrets.DOCKER_PASSWORD }}
100100

101101
- name: Log in to Quay registry
102102
uses: docker/login-action@v3
103103
with:
104104
registry: quay.io
105-
username: ${{ secrets.ANDRPAC_QUAY_USERNAME }}
106-
password: ${{ secrets.ANDRPAC_QUAY_PASSWORD }}
105+
username: ${{ secrets.QUAY_USERNAME }}
106+
password: ${{ secrets.QUAY_PASSWORD }}
107107

108108
- name: Log in to Artifactory
109109
uses: docker/login-action@v3
@@ -112,9 +112,6 @@ jobs:
112112
username: ${{ secrets.MDB_ARTIFACTORY_USERNAME }}
113113
password: ${{ secrets.MDB_ARTIFACTORY_PASSWORD }}
114114

115-
- name: Install devbox
116-
uses: jetify-com/[email protected]
117-
118115
# This step configures all of the dynamic variables needed for later steps
119116
- name: Configure job environment for downstream steps
120117
id: tags
@@ -135,30 +132,6 @@ jobs:
135132
echo "quay_certified_image_url=$quay_certified_image_url" >> $GITHUB_OUTPUT
136133
137134
# Move prerelease images to official release registries in Docker Hub and Quay
138-
- name: Move image to Docker registry release from prerelease
139-
run: devbox run -- ./scripts/move-image.sh
140-
env:
141-
IMAGE_SRC_REPO: ${{ env.DOCKER_PRERELEASE_REPO }}
142-
IMAGE_DEST_REPO: ${{ env.DOCKER_RELEASE_REPO }}
143-
IMAGE_SRC_TAG: ${{ steps.tags.outputs.promoted_tag }}
144-
IMAGE_DEST_TAG: ${{ steps.tags.outputs.release_tag }}
145-
146-
- name: Move image to Quay registry release from prerelease
147-
run: devbox run -- ./scripts/move-image.sh
148-
env:
149-
IMAGE_SRC_REPO: ${{ env.QUAY_PRERELEASE_REPO }}
150-
IMAGE_DEST_REPO: ${{ env.QUAY_RELEASE_REPO }}
151-
IMAGE_SRC_TAG: ${{ steps.tags.outputs.promoted_tag }}
152-
IMAGE_DEST_TAG: ${{ steps.tags.outputs.release_tag }}
153-
154-
# Create Openshift certified images
155-
- name: Create OpenShift certified image on Quay
156-
run: devbox run -- ./scripts/move-image.sh
157-
env:
158-
IMAGE_SRC_REPO: ${{ env.QUAY_PRERELEASE_REPO }}
159-
IMAGE_DEST_REPO: ${{ env.QUAY_RELEASE_REPO }}
160-
IMAGE_SRC_TAG: ${{ steps.tags.outputs.promoted_tag }}
161-
IMAGE_DEST_TAG: ${{ steps.tags.outputs.certified_tag }}
162135

163136
# Link updates to pr: all-in-one.yml, helm-updates, sdlc requirements
164137
- name: Generate deployment configurations
@@ -168,55 +141,76 @@ jobs:
168141
IMAGE_URL: ${{ steps.tags.outputs.docker_image_url }}
169142

170143
- name: Bump Helm chart version
171-
run: devbox run -- ./scripts/bump-helm-chart-version.sh
144+
run: ./scripts/bump-helm-chart-version.sh
172145

173146
# Prepare SDLC requirement: signatures, sboms, compliance reports
174147
# Note, signed images will live in mongodb/release and mongodb/signature repos
175-
- name: Sign released images
176-
run: |
177-
devbox run -- make sign IMG="${{ steps.tags.outputs.docker_image_url }}" SIGNATURE_REPO="${{ env.DOCKER_RELEASE_REPO }}"
178-
devbox run -- make sign IMG="${{ steps.tags.outputs.quay_image_url }}" SIGNATURE_REPO="${{ env.QUAY_RELEASE_REPO }}"
179-
devbox run -- make sign IMG="${{ steps.tags.outputs.docker_image_url }}" SIGNATURE_REPO="${{ env.DOCKER_SIGNATURE_REPO }}"
180-
devbox run -- make sign IMG="${{ steps.tags.outputs.quay_certified_image_url }}" SIGNATURE_REPO="${{ env.QUAY_RELEASE_REPO }}"
181-
devbox run -- make sign IMG="${{ steps.tags.outputs.quay_certified_image_url }}" SIGNATURE_REPO="${{ env.DOCKER_SIGNATURE_REPO }}"
182-
env:
183-
PKCS11_URI: ${{ secrets.PKCS11_URI }}
184-
GRS_USERNAME: ${{ secrets.GRS_USERNAME }}
185-
GRS_PASSWORD: ${{ secrets.GRS_PASSWORD }}
186-
187-
- name: Generate SBOMs
188-
run: devbox run -- make generate-sboms RELEASED_OPERATOR_IMAGE="${{ env.DOCKER_RELEASE_REPO }}"
189148

190149
- name: Create SDLC report
191-
run: devbox run -- make gen-sdlc-checklist
150+
run: make gen-sdlc-checklist
192151

193152
# Create PR on release branch with all updates generated
194-
- name: Create release branch with updates, tag new updates
153+
- name: Create release pr with all updated artefacts
195154
env:
196-
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
155+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
197156
run: |
198-
git config --global user.name "${{ steps.generate_token.outputs.user-name }}"
199-
git config --global user.email "${{ steps.generate_token.outputs.user-email }}"
200-
157+
export VERSION="${VERSION}"
201158
export BRANCH="new-release/${VERSION}"
202159
export COMMIT_MESSAGE="feat: release ${VERSION} from release-image workflow"
203-
export RELEASE_DIR="docs/releases/${VERSION}"
160+
export RELEASE_DIR="releases/${VERSION}"
161+
export SOURCE_COMMIT=$(git rev-parse HEAD)
162+
163+
git config --global user.name "${{ steps.generate_token.outputs.user-name }}"
164+
git config --global user.email "${{ steps.generate_token.outputs.user-email }}"
204165
205-
git checkout -b "$BRANCH"
206-
207166
mkdir -p "$RELEASE_DIR"
208-
mv deploy "$RELEASE_DIR"/deploy
209-
mv bundle "$RELEASE_DIR"/bundle
210-
mv bundle.Dockerfile "$RELEASE_DIR"/bundle.Dockerfile
211-
167+
mv deploy "$RELEASE_DIR/deploy"
168+
mv bundle "$RELEASE_DIR/bundle"
169+
mv helm-charts "$RELEASE_DIR/helm-charts"
170+
mv bundle.Dockerfile "$RELEASE_DIR/bundle.Dockerfile"
171+
172+
git fetch origin
173+
git checkout -b "$BRANCH" origin/main
174+
git push -ff origin "$BRANCH"
175+
212176
git add -f "$RELEASE_DIR"
213177
scripts/create-signed-commit.sh
214178
215179
gh pr create \
216180
--draft \
217-
--head="$BRANCH" \
181+
--base main \
182+
--head "$BRANCH" \
218183
--title "$COMMIT_MESSAGE" \
219-
--body "This is an autogenerated PR to prepare for the release"
184+
--body "This is an autogenerated PR to prepare for the release"
185+
186+
git checkout $SOURCE_COMMIT
187+
188+
# Create release artefacts on GitHub
189+
- name: Create configuration package
190+
run: |
191+
set -x
192+
tar czvf atlas-operator-all-in-one-${{ env.VERSION }}.tar.gz -C deploy all-in-one.yaml
193+
194+
- name: Tag the release assets
195+
run: |
196+
git fetch --tags
197+
git tag ${{ env.VERSION }}
198+
git push -ff origin ${{ env.VERSION }}
199+
200+
- name: Create release on GitHub
201+
uses: softprops/action-gh-release@v2
202+
with:
203+
draft: true
204+
prerelease: false
205+
tag_name: ${{ env.VERSION }}
206+
name: ${{ env.VERSION }}
207+
token: ${{ secrets.GITHUB_TOKEN }}
208+
body_path: docs/release-notes/release-notes-template.md
209+
files: |
210+
./atlas-operator-all-in-one-${{ env.VERSION }}.tar.gz
211+
./docs/releases/v${{ env.VERSION }}/sdlc-compliance.md
212+
./docs/releases/v${{ env.VERSION }}/linux-amd64.sbom.json
213+
./docs/releases/v${{ env.VERSION }}/linux-arm64.sbom.json
220214
221215
prepare-environment:
222216
name: Set up Environment Variables

0 commit comments

Comments
 (0)