@@ -3,105 +3,96 @@ name: workflow
33on :
44 push :
55 branches :
6- - main
6+ - master
77 paths-ignore :
88 - " README.md"
9-
10- name : workflow
11-
12- on :
13- push :
14- branches :
15- - master
16- paths-ignore :
17- - ' README.md'
18- pull_request :
19- branches :
20- - master
9+ pull_request :
10+ branches :
11+ - master
2112
2213permissions :
23- id-token : write
24- contents : read
14+ id-token : write
15+ contents : read
2516
2617jobs :
27- integration :
28- name : Continuous Integration
29- runs-on : self-hosted
30- steps :
31- - name : Checkout Code
32- uses : actions/checkout@v3
33-
34- - name : Lint code
35- run : echo "Linting repository"
36-
37- - name : Run unit tests
38- run : echo "Running unit tests"
39-
40- build_and_push_ecr_image :
41- name : Continuous Delivery
42- needs : integration
43- runs-on : self-hosted
44- steps :
45- - name : Checkout Code
46- uses : actions/checkout@v3
47-
48- - name : Install Utilities
49- run : |
50- sudo apt-get update
51- sudo apt-get install -y jq unzip
52-
53- - name : Configure AWS credentials
54- uses : aws-actions/configure-aws-credentials@v1
55- with :
56- aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
57- aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
58- aws-region : ${{ secrets.AWS_REGION }}
59-
60- - name : Login to Amazon ECR
61- id : login-ecr
62- uses : aws-actions/amazon-ecr-login@v1
63-
64- - name : Build, tag, and push image to Amazon ECR
65- env :
66- ECR_REGISTRY : ${{ steps.login-ecr.outputs.registry }}
67- ECR_REPOSITORY : ${{ secrets.ECR_REPOSITORY_NAME }}
68- IMAGE_TAG : latest
69- run : |
70- docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
71- docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
72- echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"
73-
74- continuous_deployment :
75- name : Continuous Deployment
76- needs : build_and_push_ecr_image
77- runs-on : self-hosted
78- steps :
79- - name : Checkout
80- uses : actions/checkout@v3
81-
82- - name : Configure AWS credentials
83- uses : aws-actions/configure-aws-credentials@v1
84- with :
85- aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
86- aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
87- aws-region : ${{ secrets.AWS_REGION }}
88-
89- - name : Login to Amazon ECR
90- id : login-ecr
91- uses : aws-actions/amazon-ecr-login@v1
92-
93- - name : Pull latest images
94- run : |
95- docker pull ${{ secrets.AWS_ECR_LOGIN_URI }}/${{ secrets.ECR_REPOSITORY_NAME }}:latest
96-
97- - name : Stop and remove container if running
98- run : |
99- docker ps -q --filter "name=cnncls" | grep -q . && docker stop cnncls && docker rm -fv cnncls
100-
101- - name : Run Docker Image to serve users
102- run : |
103- docker run -d -p 8080:8080 --name=cnncls -e 'AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }}' -e 'AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }}' -e 'AWS_REGION=${{ secrets.AWS_REGION }}' ${{ secrets.AWS_ECR_LOGIN_URI }}/${{ secrets.ECR_REPOSITORY_NAME }}:latest
104-
105- - name : Clean previous images and containers
106- run : |
107- docker system prune -f
18+ integration :
19+ name : Continuous Integration
20+ runs-on : self-hosted
21+ steps :
22+ - name : Checkout Code
23+ uses : actions/checkout@v3
24+
25+ - name : Lint code
26+ run : echo "Linting repository"
27+
28+ - name : Run unit tests
29+ run : echo "Running unit tests"
30+
31+ build_and_push_ecr_image :
32+ name : Continuous Delivery
33+ needs : integration
34+ runs-on : self-hosted
35+ steps :
36+ - name : Checkout Code
37+ uses : actions/checkout@v3
38+
39+ - name : Install Utilities
40+ run : |
41+ sudo apt-get update
42+ sudo apt-get install -y jq unzip
43+
44+ - name : Configure AWS credentials
45+ uses : aws-actions/configure-aws-credentials@v1
46+ with :
47+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
48+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
49+ aws-region : ${{ secrets.AWS_REGION }}
50+
51+ - name : Login to Amazon ECR
52+ id : login-ecr
53+ uses : aws-actions/amazon-ecr-login@v1
54+
55+ - name : Build, tag, and push image to Amazon ECR
56+ env :
57+ ECR_REGISTRY : ${{ steps.login-ecr.outputs.registry }}
58+ ECR_REPOSITORY : ${{ secrets.ECR_REPOSITORY_NAME }}
59+ IMAGE_TAG : latest
60+ run : |
61+ docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
62+ docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
63+ echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"
64+
65+ continuous_deployment :
66+ name : Continuous Deployment
67+ needs : build_and_push_ecr_image
68+ runs-on : self-hosted
69+ steps :
70+ - name : Checkout
71+ uses : actions/checkout@v3
72+
73+ - name : Configure AWS credentials
74+ uses : aws-actions/configure-aws-credentials@v1
75+ with :
76+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
77+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
78+ aws-region : ${{ secrets.AWS_REGION }}
79+
80+ - name : Login to Amazon ECR
81+ id : login-ecr
82+ uses : aws-actions/amazon-ecr-login@v1
83+
84+ - name : Pull latest images
85+ run : |
86+ docker pull ${{ secrets.AWS_ECR_LOGIN_URI }}/${{ secrets.ECR_REPOSITORY_NAME }}:latest
87+
88+ - name : Stop and remove container if running
89+ run : |
90+ docker ps -q --filter "name=cnncls" | grep -q . && docker stop cnncls && docker rm -fv cnncls
91+
92+ - name : Run Docker Image to serve users
93+ run : |
94+ docker run -d -p 8080:8080 --name=cnncls -e 'AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }}' -e 'AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }}' -e 'AWS_REGION=${{ secrets.AWS_REGION }}' ${{ secrets.AWS_ECR_LOGIN_URI }}/${{ secrets.ECR_REPOSITORY_NAME }}:latest
95+
96+ - name : Clean previous images and containers
97+ run : |
98+ docker system prune -f
0 commit comments