name: Test and Deploy on: push: branches: - main jobs: test: name: Run cargo test runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: ~/.cargo key: dot-cargo restore-keys: dot-cargo - uses: actions/cache@v2 with: path: target key: target restore-keys: target - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable - name: Run cargo test run: cargo test - name: Install wasm-pack run: | curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v2 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ap-southeast-2 - name: Install dependencies run: | cd website npm install - name: Build run: | cd website ./build.sh - name: Upload to S3 uses: jakejarvis/s3-sync-action@7ed8b112447abb09f1da74f3466e4194fc7a6311 with: args: --acl public-read --follow-symlinks --delete env: AWS_S3_BUCKET: valuescript.org AWS_REGION: ap-southeast-2 SOURCE_DIR: website/dist - name: Invalidate CloudFront distribution run: | aws cloudfront create-invalidation --distribution-id E1X5AVTI60MZKN --paths "/*" env: AWS_REGION: ap-southeast-2