Spaces:
Sleeping
Sleeping
Download .github/workflows/validation.yml from phucsd/Oloka-Video-Dev: direct link, hf CLI and curl.
- Browser
- Download file 3.83 kB
-
https://huggingface.co/spaces/phucsd/Oloka-Video-Dev/resolve/main/.github/workflows/validation.yml
- Command line
-
hf download hf://spaces/phucsd/Oloka-Video-Dev/.github/workflows/validation.yml
-
curl -L -o validation.yml https://huggingface.co/spaces/phucsd/Oloka-Video-Dev/resolve/main/.github/workflows/validation.yml
3.83 kB
| name: Validation | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| workflow_call: | |
| permissions: | |
| contents: read | |
| jobs: | |
| validate: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 25 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22.16.0 | |
| cache: npm | |
| - run: npm ci | |
| - run: npm run format:check | |
| - run: npm run lint | |
| - run: npm run typecheck | |
| - run: npm run test:unit | |
| - run: npm run test:integration | |
| - run: npm run test:frontend | |
| - run: npm test | |
| - run: npm run audit:hyperframes-runtime | |
| - run: npm run build | |
| - run: npx playwright install --with-deps chromium | |
| - run: npm run test:e2e | |
| - run: npm run test:preview | |
| - name: Build production image | |
| run: | | |
| docker build \ | |
| --build-arg APP_VERSION=0.1.0 \ | |
| --build-arg GIT_COMMIT_SHA=${GITHUB_SHA} \ | |
| --build-arg BUILD_TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ) \ | |
| -t oloka-video:${GITHUB_SHA} . | |
| - name: Verify production image durability contract | |
| run: | | |
| test "$(docker run --rm --entrypoint node oloka-video:${GITHUB_SHA} --version)" = "v22.16.0" | |
| test "$(docker run --rm --entrypoint litestream oloka-video:${GITHUB_SHA} version)" = "0.5.11" | |
| test "$(docker image inspect oloka-video:${GITHUB_SHA} --format '{{.Config.User}}')" = "1000:1000" | |
| test "$(docker image inspect oloka-video:${GITHUB_SHA} --format '{{index .Config.Labels "org.oloka.litestream.version"}}')" = "0.5.11" | |
| test "$(docker image inspect oloka-video:${GITHUB_SHA} --format '{{index .Config.Labels "org.oloka.litestream.archive.sha256"}}')" = "2f80fdb6b0a0ff7a116ee37adf02d3de8e977ef76e052b28a6690218f0f7ab55" | |
| docker run --rm --entrypoint sh oloka-video:${GITHUB_SHA} -c \ | |
| "test ! -e /usr/bin/curl && test ! -e /usr/bin/wget && test -r /usr/share/licenses/litestream/LICENSE && ! grep -E 'access-key|secret-access-key|HF_S3_ACCESS_KEY_ID|HF_S3_SECRET_ACCESS_KEY' /etc/litestream.yml" | |
| set +e | |
| missing_output="$(docker run --rm oloka-video:${GITHUB_SHA} 2>&1)" | |
| missing_exit=$? | |
| set -e | |
| test "$missing_exit" -ne 0 | |
| grep -q 'HF_S3_ACCESS_KEY_ID is required' <<<"$missing_output" | |
| ! grep -q 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' <<<"$missing_output" | |
| docker run --rm --entrypoint sh oloka-video:${GITHUB_SHA} -c \ | |
| 'test $(wc -c < /app/third_party/hyperframes/v0.7.104/hyperframe.runtime.iife.js) -eq 342023 && echo "a61e40e57329eeb9941c35ff9dac3ed8f0abfcee3246d2c5bfa2332e2df0c0c0 /app/third_party/hyperframes/v0.7.104/hyperframe.runtime.iife.js" | sha256sum --check --strict' | |
| docker run --rm --entrypoint sh oloka-video:${GITHUB_SHA} -c \ | |
| 'test $(wc -c < /app/third_party/fonts/noto-sans/NotoSans-VF.ttf) -eq 2049096 && echo "bfb7bb691513f12e734dc346c03a03f784912432d7e3fa8e56efcf906fe86b3d /app/third_party/fonts/noto-sans/NotoSans-VF.ttf" | sha256sum --check --strict' | |
| docker run --rm --entrypoint sh oloka-video:${GITHUB_SHA} -c \ | |
| 'test ! -e /app/node_modules/@hyperframes/player && test ! -e /app/node_modules/@hyperframes/core && test ! -e /app/node_modules/@hyperframes/studio-server && ! grep -E "@hyperframes/(player|core|studio-server)" /app/package-lock.json' | |
| - name: Verify MinIO replication and ephemeral local recovery | |
| env: | |
| RECOVERY_RUN_ID: ${{ github.run_id }}-${{ github.run_attempt }} | |
| run: bash scripts/run-docker-litestream-recovery.sh oloka-video:${GITHUB_SHA} | |
| - name: Record production image digest | |
| run: docker image inspect oloka-video:${GITHUB_SHA} --format 'image_id={{.Id}} repo_digests={{json .RepoDigests}}' | |