ci(dev): try this #68
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy to dev | |
on: | |
push: | |
branches: | |
- master | |
env: | |
AWS_REGION: us-east-1 | |
permissions: | |
contents: read | |
jobs: | |
deploy: | |
name: Deploy | |
runs-on: ubuntu-latest | |
environment: dev | |
env: | |
DEPLOYMENT_ACCOUNT: ${{ secrets.DEV_ACCOUNT_ID }} | |
AWS_REGION: ${{ secrets.AWS_REGION }} | |
# Access keys for role deploying | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
STAGE: dev | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 # node16 https://github.com/marketplace/actions/checkout | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v3 # node16 https://github.com/aws-actions/configure-aws-credentials | |
with: | |
aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }} | |
aws-region: ${{ env.AWS_REGION }} | |
- name: Install dependencies | |
run: npm ci | |
# - name: Unit tests | |
# run: npm run test-unit | |
- name: Deploy and create .env | |
run: | | |
CREDS=`aws sts assume-role --role-arn arn:aws:iam::$DEPLOYMENT_ACCOUNT:role/ci-role --role-session-name=ci_user` | |
export AWS_ACCESS_KEY_ID=`echo $CREDS | jq -r '.Credentials.AccessKeyId'` | |
export AWS_SECRET_ACCESS_KEY=`echo $CREDS | jq -r '.Credentials.SecretAccessKey'` | |
export AWS_SESSION_TOKEN=`echo $CREDS | jq -r '.Credentials.SessionToken'` | |
npm run deploy -- --stage $STAGE | |
npm run create-env | |
- name: Run migrations | |
run: npm run db-migrate | |
- name: Integration tests | |
run: | | |
CREDS=`aws sts assume-role --role-arn arn:aws:iam::$DEPLOYMENT_ACCOUNT:role/ci-role --role-session-name=ci_user` | |
export AWS_ACCESS_KEY_ID=`echo $CREDS | jq -r '.Credentials.AccessKeyId'` | |
export AWS_SECRET_ACCESS_KEY=`echo $CREDS | jq -r '.Credentials.SecretAccessKey'` | |
export AWS_SESSION_TOKEN=`echo $CREDS | jq -r '.Credentials.SessionToken'` | |
npm run test-int | |
- name: E2E tests | |
run: | | |
CREDS=`aws sts assume-role --role-arn arn:aws:iam::$DEPLOYMENT_ACCOUNT:role/ci-role --role-session-name=ci_user` | |
export AWS_ACCESS_KEY_ID=`echo $CREDS | jq -r '.Credentials.AccessKeyId'` | |
export AWS_SECRET_ACCESS_KEY=`echo $CREDS | jq -r '.Credentials.SecretAccessKey'` | |
export AWS_SESSION_TOKEN=`echo $CREDS | jq -r '.Credentials.SessionToken'` | |
npm run test-e2e | |