Skip to content
Merged
45 changes: 37 additions & 8 deletions .github/actions/build-and-tag-locally/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -166,25 +166,25 @@ runs:

- name: Run container
shell: bash
if: ${{ contains(fromJSON('["amd64", "i386"]'), steps.platform.outputs.display_name) }}
if: ${{ contains(fromJSON('["amd64", "i386", "arm64"]'), steps.platform.outputs.display_name) }}
run: |
docker run -d --name sanity-test-${{ steps.platform.outputs.display_name }} ${{ github.sha }}:${{ steps.platform.outputs.display_name }}
- name: Container Logs
if: ${{ contains(fromJSON('["amd64", "i386"]'), steps.platform.outputs.display_name) }}
if: ${{ contains(fromJSON('["amd64", "i386", "arm64"]'), steps.platform.outputs.display_name) }}
shell: bash
run: |
docker logs sanity-test-${{ steps.platform.outputs.display_name }}
- name: Sanity Tests
if: ${{ contains(fromJSON('["amd64", "i386"]'), steps.platform.outputs.display_name) }}
if: ${{ contains(fromJSON('["amd64", "i386", "arm64"]'), steps.platform.outputs.display_name) }}
shell: bash
run: |
docker exec sanity-test-${{ steps.platform.outputs.display_name }} redis-cli ping
docker exec sanity-test-${{ steps.platform.outputs.display_name }} redis-cli info server
- name: Verify installed modules
if: ${{ contains(fromJSON('["amd64"]'), steps.platform.outputs.display_name) }}
if: ${{ contains(fromJSON('["amd64", "arm64"]'), steps.platform.outputs.display_name) }}
shell: bash
run: |
modules=$(docker exec sanity-test-${{ steps.platform.outputs.display_name }} redis-cli module list)
Expand All @@ -204,7 +204,7 @@ runs:
fi
- name: Test RedisBloom
if: ${{ contains(fromJSON('["amd64"]'), steps.platform.outputs.display_name) }}
if: ${{ contains(fromJSON('["amd64", "arm64"]'), steps.platform.outputs.display_name) }}
shell: bash
run: |
docker exec sanity-test-${{ steps.platform.outputs.display_name }} redis-cli BF.ADD popular_keys "redis:hash"
Expand All @@ -214,7 +214,7 @@ runs:
echo "RedisBloom test passed successfully"
- name: Test RediSearch
if: ${{ contains(fromJSON('["amd64"]'), steps.platform.outputs.display_name) }}
if: ${{ contains(fromJSON('["amd64", "arm64"]'), steps.platform.outputs.display_name) }}
shell: bash
run: |
docker exec sanity-test-${{ steps.platform.outputs.display_name }} redis-cli FT.CREATE redis_commands ON HASH PREFIX 1 cmd: SCHEMA name TEXT SORTABLE description TEXT
Expand All @@ -229,7 +229,7 @@ runs:
fi
- name: Test RedisTimeSeries
if: ${{ contains(fromJSON('["amd64"]'), steps.platform.outputs.display_name) }}
if: ${{ contains(fromJSON('["amd64", "arm64"]'), steps.platform.outputs.display_name) }}
shell: bash
run: |
docker exec sanity-test-${{ steps.platform.outputs.display_name }} redis-cli TS.CREATE redis:cpu:usage RETENTION 86400
Expand All @@ -245,7 +245,7 @@ runs:
fi
- name: Test ReJSON
if: ${{ contains(fromJSON('["amd64"]'), steps.platform.outputs.display_name) }}
if: ${{ contains(fromJSON('["amd64", "arm64"]'), steps.platform.outputs.display_name) }}
shell: bash
run: |
docker exec sanity-test-${{ steps.platform.outputs.display_name }} redis-cli JSON.SET redis:config $ '{"maxmemory":"2gb","maxmemory-policy":"allkeys-lru"}'
Expand All @@ -257,3 +257,32 @@ runs:
echo "ReJSON test failed: expected 'allkeys-lru', got $result"
exit 1
fi
- name: Test the entrypoint
id: test_entrypoint
if: ${{ contains(fromJSON('["amd64", "i386", "arm64"]'), steps.platform.outputs.display_name) }}
shell: bash
run: >
cd test && env
PLATFORM=${{ steps.platform.outputs.display_name }}
REDIS_IMG=${{ github.sha }}:${{ steps.platform.outputs.display_name }}
./run-entrypoint-tests.sh
-- --output-junit-xml=report-entrypoint.xml
- name: Test Report
uses: dorny/test-reporter@v2
# run this step even if previous step failed, but not if it was skipped
if: ${{ !cancelled() && steps.test_entrypoint.conclusion != 'skipped' }}
with:
name: Entrypoint Tests
path: test/report-entrypoint.xml
reporter: java-junit

- name: Push image
uses: docker/build-push-action@v6
if: ${{ inputs.publish_image == 'true' && contains(fromJSON('["amd64", "arm64"]'), steps.platform.outputs.display_name) }}
with:
context: ${{ inputs.distribution }}
push: true
tags: ${{ inputs.registry_repository }}:${{ github.sha }}-${{ inputs.distribution }}
cache-from: type=gha
cache-to: type=gha,mode=max
6 changes: 3 additions & 3 deletions .github/workflows/pre-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

jobs:
build-and-test:
runs-on: 'ubuntu-latest'
runs-on: ${{ contains(matrix.platform, 'arm64') && 'ubuntu24-arm64-2-8' || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix:
Expand All @@ -23,7 +23,7 @@ jobs:
- linux/mips64le
- linux/ppc64le
- linux/s390x
# - linux/arm64 # Currently the unstable isn't running on arm64
- linux/arm64
- linux/riscv64
exclude:
- distribution: alpine
Expand All @@ -38,7 +38,7 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: unstable
ref: ${{ github.event.pull_request && github.sha || 'unstable' }}
- uses: ./.github/actions/build-and-tag-locally
with:
distribution: ${{ matrix.distribution }}
Expand Down
14 changes: 10 additions & 4 deletions alpine/Dockerfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

128 changes: 116 additions & 12 deletions alpine/docker-entrypoint.sh

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading