diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..6e8eaf7 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,19 @@ +{ + "root": true, + "parser": "@typescript-eslint/parser", + "plugins": [ + "@typescript-eslint" + ], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + "@typescript-eslint/interface-name-prefix": "off", + "@typescript-eslint/explicit-function-return-type": "off", + "@typescript-eslint/explicit-module-boundary-types": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-unused-vars": "off" + } + } \ No newline at end of file diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..118566a --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,61 @@ +name: CI pipeline + +on: + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + INFRACOST_API_KEY: ${{ secrets.AWS_REGION }} + + steps: + - name: Notify Trigger + run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event on branch ${{ github.ref }}." + + - name: Checkout Repository + uses: actions/checkout@v2 + + - name: Setup Node.js + uses: actions/setup-node@v2 + + - name: Cache Dependencies + uses: actions/cache@v2 + id: backend-npm-cache + with: + path: "node_modules" + key: client-npm-${{ hashFiles('package.json') }} + + - name: Install Dependencies + run: npm install + if: steps.backend-npm-cache.outputs.cache-hit != 'true' + + - name: Run Linter + run: npm run lint + + - name: Run Typecheck + run: npm run typecheck + + - name: Run build + run: npm run build + + - name: Run Test + run: npm run test + + - name: Configure AWS CLI + uses: aws-actions/configure-aws-credentials@v1 + 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: Diff AWS CDK stack + run: cdk diff --require-approval never + + - name: Display Job Status + run: echo "🍏 This job's status is ${{ job.status }}."