name: Test and Deploy to DigitalOcean Spaces

on: push

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1

    - name: Read .nvmrc
      run: echo "##[set-output name=NVMRC;]$(cat .nvmrc)"
      id: nvm

    - name: Use Node.js (.nvmrc)
      uses: actions/setup-node@v1
      with:
        node-version: "${{ steps.nvm.outputs.NVMRC }}"

    - name: npm ci, test, and build
      run: |
        npm ci
        npm test
        npm run build

    - name: Deploy commit to DigitalOcean Spaces
      run: aws s3 sync ./dist s3://${{ secrets.SPACES_BUCKET }}/commits/nginxconfig/${{ github.sha }} --endpoint=https://${{ secrets.SPACES_REGION }}.digitaloceanspaces.com --acl public-read --content-encoding utf8
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_ACCESS_KEY }}
        AWS_DEFAULT_REGION: ${{ secrets.SPACES_REGION }}

    - name: Leave a comment
      run: npm run deploy:spaces:comment
      env:
        REPO_NAME: ${{ github.repository }}
        COMMIT_SHA: ${{ github.sha }}
        GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        SPACES_REGION: ${{ secrets.SPACES_REGION }}
        SPACES_BUCKET: ${{ secrets.SPACES_BUCKET }}