Skip to content

Commit 743e8a6

Browse files
authored
Merge pull request #495 from redis/unstable-alignment
Unstable alignment * Added release-automation src directory * Aligned test directory with release/8.4 branch * Added release automation workflows support for custom and unstable builds * Added build args for Dockerfile
2 parents e5cdb81 + 6305b17 commit 743e8a6

37 files changed

+6217
-125
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
inputs:
2+
release_tag:
3+
description: 'Release tag to build'
4+
required: true
5+
release_version_branch:
6+
description: 'Release version branch to commit to'
7+
required: true
8+
9+
outputs:
10+
changed_files:
11+
description: 'List of files that were modified'
12+
value: ${{ steps.apply-version.outputs.changed_files }}
13+
14+
runs:
15+
using: "composite"
16+
steps:
17+
- name: Checkout common functions
18+
uses: actions/checkout@v4
19+
with:
20+
repository: redis-developer/redis-oss-release-automation
21+
ref: main
22+
path: redis-oss-release-automation
23+
24+
- name: Apply docker version
25+
id: apply-version
26+
shell: bash
27+
run: |
28+
${{ github.action_path }}/apply-docker-version.sh ${{ inputs.release_tag }}
29+
30+
- name: Create verified commit
31+
if: steps.apply-version.outputs.changed_files != ''
32+
uses: iarekylew00t/verified-bot-commit@v1
33+
with:
34+
message: ${{ inputs.release_tag }}
35+
files: ${{ steps.apply-version.outputs.changed_files }}
36+
ref: ${{ inputs.release_version_branch }}
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
#!/bin/bash
2+
set -e
3+
4+
# This script updates Redis version in Dockerfiles using environment variables
5+
# REDIS_ARCHIVE_URL and REDIS_ARCHIVE_SHA, then commits changes if any were made.
6+
7+
# shellcheck disable=SC2034
8+
last_cmd_stdout=""
9+
# shellcheck disable=SC2034
10+
last_cmd_stderr=""
11+
# shellcheck disable=SC2034
12+
last_cmd_result=0
13+
# shellcheck disable=SC2034
14+
VERBOSITY=1
15+
16+
17+
18+
SCRIPT_DIR="$(dirname -- "$( readlink -f -- "$0"; )")"
19+
# shellcheck disable=SC1091
20+
. "$SCRIPT_DIR/../common/func.sh"
21+
22+
source_helper_file helpers.sh
23+
24+
# Input TAG is expected in $1
25+
TAG="$1"
26+
27+
if [ -z "$TAG" ]; then
28+
echo "Error: TAG is required as first argument"
29+
exit 1
30+
fi
31+
32+
# Check if required environment variables are set
33+
if [ -z "$REDIS_ARCHIVE_URL" ]; then
34+
echo "Error: REDIS_ARCHIVE_URL environment variable is not set"
35+
exit 1
36+
fi
37+
38+
if [ -z "$REDIS_ARCHIVE_SHA" ]; then
39+
echo "Error: REDIS_ARCHIVE_SHA environment variable is not set"
40+
exit 1
41+
fi
42+
43+
echo "TAG: $TAG"
44+
echo "REDIS_ARCHIVE_URL: $REDIS_ARCHIVE_URL"
45+
echo "REDIS_ARCHIVE_SHA: $REDIS_ARCHIVE_SHA"
46+
47+
# Function to update Dockerfile
48+
update_dockerfile() {
49+
local dockerfile="$1"
50+
local updated=false
51+
52+
if [ ! -f "$dockerfile" ]; then
53+
echo "Warning: $dockerfile not found, skipping"
54+
return 1
55+
fi
56+
57+
echo "Updating $dockerfile..."
58+
59+
# Update REDIS_DOWNLOAD_URL
60+
if grep -q "^ARG REDIS_DOWNLOAD_URL=" "$dockerfile"; then
61+
sed -i "s|^ARG REDIS_DOWNLOAD_URL=.*|ARG REDIS_DOWNLOAD_URL=$REDIS_ARCHIVE_URL|" "$dockerfile"
62+
else
63+
echo "Cannot update $dockerfile, ARG REDIS_DOWNLOAD_URL not found"
64+
return 1
65+
fi
66+
67+
68+
# Update REDIS_DOWNLOAD_SHA
69+
if grep -q "^ARG REDIS_DOWNLOAD_SHA=" "$dockerfile"; then
70+
sed -i "s|^ARG REDIS_DOWNLOAD_SHA=.*|ARG REDIS_DOWNLOAD_SHA=$REDIS_ARCHIVE_SHA|" "$dockerfile"
71+
else
72+
echo "Cannot update $dockerfile, ARG REDIS_DOWNLOAD_SHA not found"
73+
return 1
74+
fi
75+
}
76+
77+
docker_files=("debian/Dockerfile" "alpine/Dockerfile")
78+
# Track which files were modified
79+
changed_files=()
80+
81+
for dockerfile in "${docker_files[@]}"; do
82+
update_dockerfile "$dockerfile"
83+
done
84+
85+
changed_files=($(git diff --name-only "${docker_files[@]}"))
86+
87+
# Output the list of changed files for GitHub Actions
88+
if [ ${#changed_files[@]} -gt 0 ]; then
89+
echo "Files were modified:"
90+
printf '%s\n' "${changed_files[@]}"
91+
92+
# Set GitHub Actions output
93+
changed_files_output=$(printf '%s\n' "${changed_files[@]}")
94+
{
95+
echo "changed_files<<EOF"
96+
echo "$changed_files_output"
97+
echo "EOF"
98+
} >> "$GITHUB_OUTPUT"
99+
100+
echo "Changed files output set for next step"
101+
else
102+
echo "No files were modified"
103+
echo "changed_files=" >> "$GITHUB_OUTPUT"
104+
fi

0 commit comments

Comments
 (0)