Spaces:
Sleeping
Sleeping
| name: Test @upstash/redis compatability | |
| on: | |
| workflow_dispatch: | |
| push: | |
| paths: | |
| - 'lib/**' | |
| - 'Dockerfile' | |
| - 'mix.exs' | |
| - 'mix.lock' | |
| schedule: | |
| - cron: '0 12 * * *' | |
| env: | |
| SRH_TOKEN: example_token | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout SRH code | |
| uses: actions/checkout@v3 | |
| - name: Build Dockerfile | |
| run: docker build -t hiett/serverless-redis-http:latest . | |
| - name: Export to TAR | |
| run: docker save hiett/serverless-redis-http:latest -o /tmp/serverless-redis-http.tar | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v3 | |
| with: | |
| name: serverless-redis-http | |
| path: /tmp/serverless-redis-http.tar | |
| container-job: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| services: | |
| redis: | |
| image: redis/redis-stack-server:7.2.0-v7 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| with: | |
| repository: upstash/upstash-redis | |
| - uses: oven-sh/setup-bun@v1 | |
| with: | |
| bun-version: latest | |
| - name: Download SRH artifact | |
| uses: actions/download-artifact@v3 | |
| with: | |
| name: serverless-redis-http | |
| path: /tmp | |
| - name: Load SRH image | |
| run: | | |
| docker load --input /tmp/serverless-redis-http.tar | |
| docker image ls -a | grep serverless-redis-http | |
| # Placed inside the same docker network as the service container with job.container.network, at which point | |
| # it can directly address Redis. We still need to expose SRH's port to the host machine, however, so that | |
| # we can run tests against it. | |
| - name: Run SRH container | |
| run: | | |
| docker run -it -d -p 8080:80 --network ${{ job.container.network }} -e SRH_MODE=env -e SRH_TOKEN=${{ env.SRH_TOKEN }} -e SRH_CONNECTION_STRING="redis://redis:6379" hiett/serverless-redis-http:latest | |
| # The following tests fail because of bugs with Upstash's implementation of Redis, NOT because of our library | |
| # So we remove them from the test suite | |
| - name: Remove JSON tests | |
| run: | | |
| rm ./pkg/commands/json_get.test.ts | |
| rm ./pkg/commands/json_mget.test.ts | |
| rm ./pkg/commands/json_objlen.test.ts | |
| - name: Install bun dependencies | |
| run: bun install | |
| - name: Run @upstash/redis Test Suite | |
| run: bun run test | |
| env: | |
| UPSTASH_REDIS_REST_URL: http://localhost:8080 | |
| UPSTASH_REDIS_REST_TOKEN: ${{ env.SRH_TOKEN }} |