Skip to content

Add test seed upload workflow. #1

Add test seed upload workflow.

Add test seed upload workflow. #1

Workflow file for this run

name: PR Seed Upload
on:
pull_request:
paths:
- 'studies/**'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Generate seed
run: |
npm install
npm run typecheck:scripts
npm run build:proto
npm run typecheck
npm run test
npm run seed_tools -- create_seed studies seed.bin
- name: Upload seed
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_PRODUCTION_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_PRODUCTION_SECRET_ACCESS_KEY }}
AWS_REGION: us-west-2
CLOUDFRONT_DISTRIBUTION_ID: ${{ secrets.CLOUDFRONT_DISTRIBUTION_ID }}
REMOTE_SEED_PATH: 'pull/${{github.event.pull_request.number}}/seed'
run: |
gzip -c seed.bin | aws s3 cp - "s3://brave-production-griffin-origin/$REMOTE_SEED_PATH" \
--content-type application/octet-stream \
--content-encoding gzip
INVALIDATION_ID=$(aws cloudfront create-invalidation --distribution-id "$CLOUDFRONT_DISTRIBUTION_ID" --paths "/$REMOTE_SEED_PATH" --query 'Invalidation.Id' --output text)
echo "Waiting for CDN invalidation $INVALIDATION_ID to complete..."
while true ; do
STATUS=$(aws cloudfront get-invalidation --distribution-id "$CLOUDFRONT_DISTRIBUTION_ID" --id "$INVALIDATION_ID" --query 'Invalidation.Status' --output text)
echo "CDN invalidation status: $STATUS"
if [[ "$STATUS" == "Completed" ]]; then
echo "CDN invalidation completed."
break
else
echo "CDN invalidation in progress, waiting..."
sleep 30
fi
done