From b9cff8e04965f10f54114316774e7df959780aa6 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 13 Feb 2026 10:37:40 +0800 Subject: [PATCH] Refactor Redis and MongoDB setup in workflows - Replace `supercharge/redis-github-action` with a direct Docker command to start Redis in both `pr-test.yml` and `unit-test.yml`, improving control over the Redis instance. - Update MongoDB setup to use a Docker command with environment variables for initialization and include a readiness check to ensure MongoDB is fully operational before proceeding. --- .github/workflows/pr-test.yml | 45 +++++++++++++++------------------ .github/workflows/unit-test.yml | 45 +++++++++++++++------------------ 2 files changed, 42 insertions(+), 48 deletions(-) diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index 53712415..1749efdb 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -321,9 +321,7 @@ jobs: go-version: ${{ matrix.go }} - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 - with: - redis-version: 6 + run: docker run --name redis --publish 6379:6379 --detach redis:6 - name: Setup Go Tools run: make tools @@ -518,9 +516,7 @@ jobs: go-version: ${{ matrix.go }} - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 - with: - redis-version: 6 + run: docker run --name redis --publish 6379:6379 --detach redis:6 - name: Setup Go Tools run: make tools @@ -712,9 +708,7 @@ jobs: go-version: ${{ matrix.go }} - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 - with: - redis-version: 6 + run: docker run --name redis --publish 6379:6379 --detach redis:6 - name: Setup Go Tools run: make tools @@ -878,9 +872,7 @@ jobs: go-version: ${{ matrix.go }} - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 - with: - redis-version: 6 + run: docker run --name redis --publish 6379:6379 --detach redis:6 - name: Setup Go Tools run: make tools @@ -1049,9 +1041,7 @@ jobs: go-version: ${{ matrix.go }} - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 - with: - redis-version: 6 + run: docker run --name redis --publish 6379:6379 --detach redis:6 - name: Setup Go Tools run: make tools @@ -1245,9 +1235,7 @@ jobs: echo "${{ secrets.APPLE_PRIVATE_KEY_USER }}" > ../app/openapi/certs/apple/signin_client_secret_key.p8 - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 - with: - redis-version: ${{ matrix.redis }} + run: docker run --name redis --publish 6379:6379 --detach redis:${{ matrix.redis }} - name: Setup Go ${{ matrix.go }} uses: actions/setup-go@v5 @@ -1277,12 +1265,21 @@ jobs: convert -version - name: Start MongoDB - uses: supercharge/mongodb-github-action@1.11.0 - with: - mongodb-version: ${{ matrix.mongo }} - mongodb-username: root - mongodb-password: 123456 - mongodb-db: test + run: | + docker run --name mongodb --publish 27017:27017 \ + -e MONGO_INITDB_DATABASE=test \ + -e MONGO_INITDB_ROOT_USERNAME=root \ + -e MONGO_INITDB_ROOT_PASSWORD=123456 \ + --detach mongo:${{ matrix.mongo }} + # Wait for MongoDB to be ready + for i in $(seq 1 20); do + if docker exec mongodb mongosh --quiet --port 27017 --username root --password 123456 --eval "db.serverStatus()" > /dev/null 2>&1; then + echo "MongoDB is ready" + break + fi + echo "Waiting for MongoDB... ($i)" + sleep 1 + done - name: Setup MySQL8.0 (connector) uses: ./.github/actions/setup-db diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index ae42aabe..c8efb7c8 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -277,9 +277,7 @@ jobs: go-version: ${{ matrix.go }} - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 - with: - redis-version: 6 + run: docker run --name redis --publish 6379:6379 --detach redis:6 - name: Setup Go Tools run: make tools @@ -412,9 +410,7 @@ jobs: go-version: ${{ matrix.go }} - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 - with: - redis-version: 6 + run: docker run --name redis --publish 6379:6379 --detach redis:6 - name: Setup Go Tools run: make tools @@ -544,9 +540,7 @@ jobs: go-version: ${{ matrix.go }} - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 - with: - redis-version: 6 + run: docker run --name redis --publish 6379:6379 --detach redis:6 - name: Setup Go Tools run: make tools @@ -648,9 +642,7 @@ jobs: go-version: ${{ matrix.go }} - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 - with: - redis-version: 6 + run: docker run --name redis --publish 6379:6379 --detach redis:6 - name: Setup Go Tools run: make tools @@ -771,9 +763,7 @@ jobs: go-version: ${{ matrix.go }} - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 - with: - redis-version: 6 + run: docker run --name redis --publish 6379:6379 --detach redis:6 - name: Setup Go Tools run: make tools @@ -944,17 +934,24 @@ jobs: convert -version - name: Start Redis - uses: supercharge/redis-github-action@1.8.0 - with: - redis-version: ${{ matrix.redis }} + run: docker run --name redis --publish 6379:6379 --detach redis:${{ matrix.redis }} - name: Start MongoDB - uses: supercharge/mongodb-github-action@1.11.0 - with: - mongodb-version: ${{ matrix.mongo }} - mongodb-username: root - mongodb-password: 123456 - mongodb-db: test + run: | + docker run --name mongodb --publish 27017:27017 \ + -e MONGO_INITDB_DATABASE=test \ + -e MONGO_INITDB_ROOT_USERNAME=root \ + -e MONGO_INITDB_ROOT_PASSWORD=123456 \ + --detach mongo:${{ matrix.mongo }} + # Wait for MongoDB to be ready + for i in $(seq 1 20); do + if docker exec mongodb mongosh --quiet --port 27017 --username root --password 123456 --eval "db.serverStatus()" > /dev/null 2>&1; then + echo "MongoDB is ready" + break + fi + echo "Waiting for MongoDB... ($i)" + sleep 1 + done - name: Setup MySQL8.0 (connector) uses: ./.github/actions/setup-db