GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — httpsms/.github/workflows/api.yml at main · ossfork/httpsms 135 lines (118 loc) · 4.21 KB / Copy pathapi.ymlFile metadata and controls135 lines (118 loc) · 4.21 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 name: api on: push: branches: - main pull_request: branches: - main permissions: contents: read id-token: write jobs: test: name: Integration Tests runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v7 - name: Set up Go uses: actions/setup-go@v7 with: go-version: stable - name: Generate Firebase credentials run: | bash tests/generate-firebase-credentials.sh tests/firebase-credentials.json echo "FIREBASE_CREDENTIALS=$(jq -c . tests/firebase-credentials.json)" >> $GITHUB_ENV - name: Generate adapter certificates run: bash tests/generate-adapter-certificates.sh tests/certs - name: Start Services working-directory: ./tests run: docker compose up -d --build - name: Wait for services to be healthy working-directory: ./tests run: | echo "Waiting for MongoDB to be healthy..." for i in $(seq 1 20); do if docker compose exec mongodb mongosh --eval "db.runCommand('ping').ok" --quiet >/dev/null 2>&1; then echo "MongoDB is healthy!" break fi if [ $i -eq 20 ]; then echo "MongoDB failed to become healthy" docker compose logs mongodb exit 1 fi echo "MongoDB attempt $i/20 - waiting 3s..." sleep 3 done echo "Waiting for API to be healthy..." for i in $(seq 1 40); do if docker compose exec api curl -sf http://localhost:8000/health >/dev/null 2>&1; then echo "API is healthy!" break fi if [ $i -eq 40 ]; then echo "API failed to become healthy" docker compose logs api exit 1 fi echo "Attempt $i/40 - waiting 5s..." sleep 5 done - name: Seed Database working-directory: ./tests run: | echo "Waiting for seed container to finish..." docker compose wait seed || true sleep 2 - name: Run Handler Integration Tests working-directory: ./api env: USER_API_KEY: test-user-api-key run: go test -tags integration -v -timeout 60s ./pkg/handlers - name: Run Integration Tests working-directory: ./tests run: go test -v -timeout 300s ./... - name: Collect Logs on Failure if: failure() working-directory: ./tests run: | docker compose logs --tail 200 - name: Stop Services if: always() working-directory: ./tests run: docker compose down -v deploy: name: Deploy runs-on: ubuntu-latest needs: test if: github.event_name == 'push' && github.ref == 'refs/heads/main' steps: - name: Authenticate to Google Cloud uses: google-github-actions/auth@v3 with: workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }} service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }} - name: Set up Cloud SDK uses: google-github-actions/setup-gcloud@v3 - name: Trigger Cloud Build Deploy run: | BUILD_ID=$(gcloud builds triggers run api-httpsms-com \ --region=global \ --project=httpsms-86c51 \ --sha=${{ github.sha }} \ --format="value(metadata.build.id)") echo -e "Cloud Build: \033[34mhttps://console.cloud.google.com/cloud-build/builds/$BUILD_ID?project=httpsms-86c51\033[0m" echo "" echo "Polling Cloud Build Status..." while true; do STATUS=$(gcloud builds describe "$BUILD_ID" --region=global --project=httpsms-86c51 --format="value(status)") LOCAL_TIME=$(date -u '+%Y-%m-%d %H:%M:%S UTC') echo -e " \033[90m${LOCAL_TIME}\033[0m status=\033[36m${STATUS}\033[0m" case "$STATUS" in SUCCESS) echo -e "\033[32mBuild succeeded!\033[0m"; exit 0 ;; FAILURE|TIMEOUT|CANCELLED|EXPIRED|INTERNAL_ERROR) echo -e "\033[31mBuild failed with status: $STATUS\033[0m"; exit 1 ;; esac sleep 30 done |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |