fix:go.sum not found #34
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: CI/CD Pipeline | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
Test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out the code | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.22.2 | |
- name: Install dependencies | |
run: go mod download | |
- name: Test code | |
env: | |
DB_URI: ${{ secrets.TEST_DB_URI }} | |
JWT_SECRET: ${{ secrets.TEST_JWT_SECRET }} | |
ENVIRONMENT: ${{ secrets.ENVIRONMENT }} | |
run: | | |
cd test | |
go test -run TestOrder | |
Build: | |
runs-on: ubuntu-latest | |
needs: Test | |
steps: | |
- name: Check out the code | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.22.2 | |
- name: Build and push Docker image | |
if: | | |
github.event_name == 'push' && | |
github.ref == 'refs/heads/main' | |
env: | |
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} | |
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} | |
JWT_SECRET: ${{ secrets.JWT_SECRET }} | |
DB_URI: ${{ secrets.DB_URI }} | |
run: | | |
echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin | |
docker build --build-arg JWT_SECRET=${JWT_SECRET} --build-arg DB_URI=${DB_URI} -t piyush7833/chat-api:latest . | |
docker push piyush7833/chat-api:latest | |
# AWS INSTANCES ARE NOT FREE, SO I AM COMMENTING THIS CODE | |
# - name: Update ECS task definition and service | |
# if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
# env: | |
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
# AWS_REGION: ${{ secrets.AWS_REGION }} | |
# ECS_CLUSTER: ${{ secrets.ECS_CLUSTER }} | |
# ECS_SERVICE: ${{ secrets.ECS_SERVICE }} | |
# ECS_TASK_DEFINITION: ${{ secrets.ECS_TASK_DEFINITION }} | |
# ECR_IMAGE_URI: ${{ secrets.AWS_ECR_IMAGE_URL }} | |
# run: | | |
# aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $ECR_IMAGE_URI | |
# docker tag piyush7833/chat-api:latest $ECR_IMAGE_URI/chat-api:latest | |
# docker push $ECR_IMAGE_URI/chat-api:latest | |
# echo "Fetching current task definition" | |
# TASK_DEFINITION_JSON=$(aws ecs describe-task-definition --task-definition $ECS_TASK_DEFINITION) | |
# echo "Updating task definition with new image" | |
# NEW_TASK_DEF_JSON=$(echo $TASK_DEFINITION_JSON | jq --arg IMAGE_URI "$ECR_IMAGE_URI:latest" '.taskDefinition | .containerDefinitions[0].image=$IMAGE_URI') | |
# echo "Registering new task definition" | |
# NEW_TASK_DEF_FAMILY=$(echo $NEW_TASK_DEF_JSON | jq -r .family) | |
# NEW_TASK_DEF=$(aws ecs register-task-definition \ | |
# --family $NEW_TASK_DEF_FAMILY \ | |
# --task-role-arn $(echo $NEW_TASK_DEF_JSON | jq -r .taskRoleArn) \ | |
# --execution-role-arn $(echo $NEW_TASK_DEF_JSON | jq -r .executionRoleArn) \ | |
# --network-mode $(echo $NEW_TASK_DEF_JSON | jq -r .networkMode) \ | |
# --container-definitions "$(echo $NEW_TASK_DEF_JSON | jq -r .containerDefinitions)" \ | |
# --requires-compatibilities "$(echo $NEW_TASK_DEF_JSON | jq -r .requiresCompatibilities)" \ | |
# --cpu $(echo $NEW_TASK_DEF_JSON | jq -r .cpu) \ | |
# --memory $(echo $NEW_TASK_DEF_JSON | jq -r .memory)) | |
# NEW_TASK_DEF_ARN=$(echo $NEW_TASK_DEF | jq -r .taskDefinition.taskDefinitionArn) | |
# echo "Updating ECS service to use the new task definition" | |
# aws ecs update-service --cluster $ECS_CLUSTER --service $ECS_SERVICE --task-definition $NEW_TASK_DEF_ARN | |