diff --git a/.github/workflows/pre-deployment.yml b/.github/workflows/pre-deployment.yml new file mode 100644 index 0000000..a74cbd5 --- /dev/null +++ b/.github/workflows/pre-deployment.yml @@ -0,0 +1,43 @@ +name: "Pre Deployment Script" + +on: + push: + branches: + - master + +jobs: + pre_deploy: + runs-on: ubuntu-latest + steps: + - name: Pull Repository + uses: actions/checkout@v2 + + - name: Setup and Install Node.Js + uses: actions/setup-node@v3.4.1 + with: + node-version: "18.x" + cache: "yarn" + + - name: Install Dependencies + run: yarn install --frozen-lockfile + + - name: Build Application + run: | + yarn run app:build + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.REGION }} + + - name: Build and Push Docker Image to Amazon ECR + run: | + aws ecr get-login-password --region ${{ secrets.REGION }} | docker login --username AWS --password-stdin ${{ secrets.REGISTRY_URL }} + docker build -t ${{ secrets.REGISTRY_URL }}/${{ secrets.REPOSITORY_NAME }}:latest -f Dockerfile . + docker push ${{ secrets.REGISTRY_URL }}/${{ secrets.REPOSITORY_NAME }}:latest + + - name: Deploy to Lambda + run: | + aws lambda update-function-code --function-name ${{ secrets.FUNCTION_NAME }} --image-uri ${{ secrets.REGISTRY_URL }}/${{ secrets.REPOSITORY_NAME }}:latest diff --git a/src/modules/entrypoint/entrypoint.service.ts b/src/modules/entrypoint/entrypoint.service.ts index 62f6343..0d696a4 100644 --- a/src/modules/entrypoint/entrypoint.service.ts +++ b/src/modules/entrypoint/entrypoint.service.ts @@ -9,7 +9,6 @@ import { AWSSqs } from "@shared/utils/aws/sqs.util"; import { YoutubeDL } from "@shared/utils/youtube-dl/youtube-dl.util"; // TODO:: Prod ses access -// Post deployment script to build app, push to Aws ecr on merge or push to master and deploy to lambda // Infra provisioning script (terraform) @injectable()