Test Local Upload #41
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test Local Upload | |
| on: | |
| workflow_run: | |
| workflows: ["Docker Build (Local)"] | |
| types: | |
| - completed | |
| workflow_dispatch: # Allow manual triggering | |
| jobs: | |
| Test-Local-Uploads: | |
| runs-on: ubuntu-latest | |
| if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }} | |
| env: | |
| COMPOSE_FILE: ./docker-compose.yml | |
| REGISTRY_PREFIX: docker.io/library | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true # Ensure we get the submodule info | |
| - name: Set repository name | |
| run: echo "REPO_NAME=$(basename $GITHUB_WORKSPACE)" >> $GITHUB_ENV | |
| - name: Cache test data | |
| uses: actions/cache@v4 | |
| id: test-data-cache | |
| with: | |
| path: test/test_data | |
| key: test-data-${{ hashFiles('.gitmodules') }} | |
| restore-keys: | | |
| test-data- | |
| - name: Get test data if not cached | |
| if: steps.test-data-cache.outputs.cache-hit != 'true' | |
| run: | | |
| make get-test-data | |
| - name: Cache Docker images | |
| uses: actions/cache@v4 | |
| id: docker-cache | |
| with: | |
| path: | | |
| mongo.tar | |
| api.tar | |
| handler.tar | |
| ui.tar | |
| key: docker-local-images-${{ github.event.workflow_run.head_sha || github.sha }} | |
| restore-keys: | | |
| docker-local-images- | |
| - name: Load images | |
| run: | | |
| # Load images and verify they were loaded successfully | |
| docker load < mongo.tar || exit 1 | |
| rm mongo.tar | |
| docker load < api.tar || exit 1 | |
| # Tag the API image to match docker-compose | |
| docker tag ${REGISTRY_PREFIX}/${REPO_NAME}-api:latest api:latest | |
| rm api.tar | |
| docker load < handler.tar || exit 1 | |
| # Tag the handler image to match docker-compose | |
| docker tag ${REGISTRY_PREFIX}/${REPO_NAME}-handler:latest handler:latest | |
| rm handler.tar | |
| docker load < ui.tar || exit 1 | |
| # Tag the UI image to match docker-compose | |
| docker tag ${REGISTRY_PREFIX}/${REPO_NAME}-ui:latest ui:latest | |
| rm ui.tar | |
| - name: Start services | |
| run: | | |
| # Create and set permissions for temp directory | |
| mkdir -p /tmp/ezbids-workdir | |
| chmod 770 /tmp/ezbids-workdir | |
| # Start services using our tagged images | |
| docker compose -f ${{ env.COMPOSE_FILE }} up -d | |
| sleep 30 | |
| - name: Install uv | |
| run: | | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
| - name: Verify uv installation | |
| run: uv --version | |
| - name: Run upload test | |
| run: | | |
| make test-upload |