diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2a01f445..eeb7c0cd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,15 +1,9 @@ name: Sharingan Build on: - push: - branches: [ main ] - paths-ignore: - - '**/.md' pull_request: branches: [ main ] paths-ignore: - '**/.md' -env: - COMMIT_SHA: ${{ github.event.pull_request.head.sha }} concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} @@ -51,21 +45,3 @@ jobs: - name: Run tests run: yarn test - - trigger_deploy: - if: ${{ github.ref == 'refs/heads/main' }} - name: trigger_deploy - needs: [ build ] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Trigger deployment - run: | - set -e - - GITHUB_TOKEN=${{ github.token }} - SHA=${COMMIT_SHA:=latest} - - echo $SHA - - curl -X POST -H "Accept: application/vnd.github.v3+json" -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/repos/tericcabrel/sharingan/actions/workflows/deploy-core.yml/dispatches -d '{"ref": "main", "inputs": {"commit-sha": "'"$SHA"'"}}' diff --git a/.github/workflows/deploy-core.yml b/.github/workflows/deploy-core.yml index 19c28058..9e2f5e08 100644 --- a/.github/workflows/deploy-core.yml +++ b/.github/workflows/deploy-core.yml @@ -1,13 +1,16 @@ name: Sharingan Deploy Core on: - workflow_dispatch: - inputs: - commit-sha: - description: "SHA of the latest commit in the pull request" - required: true + push: + branches: + - main + - dev + paths: + - 'apps/core/src/**' env: - IMAGE_TAG: tericcabrel/sharingan-core:${{ github.event.inputs.commit-sha }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }} jobs: package: @@ -18,43 +21,29 @@ jobs: - name: Copy the core Dockerfile in the root repository run: cp apps/core/Dockerfile . - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v2 - with: - context: . - push: true - tags: ${{ env.IMAGE_TAG }} + - name: Build, tag, and push docker image to Amazon ECR + env: + REGISTRY: public.ecr.aws/x9y5g9l2 + REGION: us-east-1 # Public ECR aren't region specific + REPOSITORY: ${{ (github.ref == 'refs/heads/main' && 'sharingan') || 'sharingan-dev' }} + IMAGE_TAG: latest + run: | + aws ecr-public get-login-password --region $REGION | docker login --username AWS --password-stdin $REGISTRY + docker build -t $REPOSITORY:$IMAGE_TAG . + docker tag $REPOSITORY:$IMAGE_TAG $REGISTRY/$REPOSITORY:$IMAGE_TAG + docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG deploy: - defaults: - run: - working-directory: apps/core runs-on: ubuntu-latest - environment: Production + environment: ${{ (github.ref == 'refs/heads/main' && 'Production') || 'Development' }} needs: - package steps: - uses: actions/checkout@v2 - - name: Add Server key - run: | - touch key.txt && echo "${{ secrets.SERVER_KEY }}" > key.txt - chmod 600 key.txt + - name: Deploy the application + env: + AWS_REGION: eu-west-1 run: | - export SUSER=${{ secrets.SERVER_USER }} - export SNAME=${{ secrets.SERVER_NAME }} - export SPORT=${{ secrets.SERVER_PORT }} - export IMAGE_TAG=$IMAGE_TAG - ./deploy.sh + touch file.json && echo '${{ secrets.CORE_APP_ARN }}' > file.json + aws apprunner start-deployment --region $AWS_REGION --cli-input-json file://file.json diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml deleted file mode 100644 index 98edd95a..00000000 --- a/.github/workflows/deploy-dev.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Sharingan Deploy Dev -on: - push: - branches: [ dev ] - paths-ignore: - - '**/.md' - - workflow_dispatch: - inputs: - should_deploy: - description: 'Indicate which application to deploy' - type: string - required: true - default: 'none' - options: - - none - - frontend - - backend - - all - -jobs: - deploy_frontend: - if: ${{ github.event.inputs.should_deploy == 'frontend' || github.event.inputs.should_deploy == 'all' }} - name: deploy_frontend - runs-on: ubuntu-latest - environment: - name: development - url: https://staging.sharingan.dev - steps: - - name: Trigger the deployment - run: curl -X POST https://api.vercel.com/v1/integrations/deploy/prj_JteUo9hSVRPRAQlurvgW9SGl646S/WzizovSjPi - - deploy_backend: - if: ${{ github.event.inputs.should_deploy == 'backend' || github.event.inputs.should_deploy == 'all' }} - name: deploy_backend - runs-on: ubuntu-latest - environment: - name: development - url: https://staging.api.sharingan.dev - steps: - - name: Trigger the deployment - run: echo "Deploy the backend" diff --git a/apps/core/Dockerfile b/apps/core/Dockerfile index 2df890bf..b3a885b3 100644 --- a/apps/core/Dockerfile +++ b/apps/core/Dockerfile @@ -4,7 +4,7 @@ RUN mkdir app WORKDIR /app -COPY ../.. . +COPY . . RUN yarn install