Skip to content

Commit 00dac17

Browse files
author
unisbadri
committed
adding deployment to dockerhub, conventional vm, google container registry and elastic container registry (aws)
1 parent 0bad39e commit 00dac17

File tree

4 files changed

+196
-0
lines changed

4 files changed

+196
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Deploy to Dockerhub
2+
3+
on:
4+
push:
5+
tags:
6+
- 'dockerhub-v*'
7+
8+
jobs:
9+
Release:
10+
name: Release
11+
runs-on: ubuntu-20.04
12+
steps:
13+
- uses: actions/checkout@v2
14+
15+
# Getting tag name for docker image and full tag name.
16+
- name: Get tag version
17+
id: branch_name
18+
run: |
19+
echo ::set-output name=SOURCE_TAG_DOCKER_IMAGE::${GITHUB_REF#refs/tags/dockerhub-v}
20+
echo ::set-output name=SOURCE_TAG::${GITHUB_REF#refs/tags/}
21+
22+
# Login to Docker
23+
- name: Login to DockerHub
24+
uses: docker/login-action@v1
25+
with:
26+
username: ${{ secrets.DOCKERHUB_USERNAME }}
27+
password: ${{ secrets.DOCKERHUB_TOKEN }}
28+
29+
# Build and push docker image to Dockerhub
30+
- name: Build and push
31+
id: docker_build
32+
uses: docker/build-push-action@v2
33+
with:
34+
push: true
35+
tags: namikazebadri/vaadin-app:${{ steps.branch_name.outputs.SOURCE_TAG_DOCKER_IMAGE }}
36+
37+
# Outputting image digest from push
38+
- name: Image digest
39+
run: echo ${{ steps.docker_build.outputs.digest }}
40+
41+
# Notify engineers via slack
42+
- name: Notify slack
43+
uses: rtCamp/action-slack-notify@v2
44+
env:
45+
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_OPEN_SOURCE }}
46+
SLACK_USERNAME: "Open Source Activities"
47+
SLACK_TITLE: "New Version Release!"
48+
SLACK_MESSAGE: "\n\n === ${{ github.repository }} (${{ steps.branch_name.outputs.SOURCE_TAG }}) ==="
49+
SLACK_FOOTER: "Powered by Element Creative Studio"
50+
SLACK_ICON: "https://cdn.elementcreativestudio.com/github.png"

.github/workflows/ecr-deployment.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Deploy to ECR
2+
3+
on:
4+
push:
5+
tags:
6+
- 'ecr-v*'
7+
8+
jobs:
9+
Release:
10+
name: Release
11+
runs-on: ubuntu-20.04
12+
steps:
13+
- uses: actions/checkout@v2
14+
15+
# Getting tag name for docker image and full tag name.
16+
- name: Get tag version
17+
id: branch_name
18+
run: |
19+
echo ::set-output name=SOURCE_TAG_DOCKER_IMAGE::${GITHUB_REF#refs/tags/ecr-v}
20+
echo ::set-output name=SOURCE_TAG::${GITHUB_REF#refs/tags/}
21+
22+
# Deploying image to Elastic Container Registry
23+
- run: docker build . --tag vaadin-app:${{ steps.branch_name.outputs.SOURCE_TAG_DOCKER_IMAGE }}
24+
- name: Push to ECR
25+
id: ecr
26+
uses: jwalton/gh-ecr-push@v1
27+
with:
28+
access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
29+
secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
30+
region: ap-southeast-1
31+
image: vaadin-app:${{ steps.branch_name.outputs.SOURCE_TAG_DOCKER_IMAGE }}
32+
33+
# Notify engineers via slack
34+
- name: Notify slack
35+
uses: rtCamp/action-slack-notify@v2
36+
env:
37+
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_OPEN_SOURCE }}
38+
SLACK_USERNAME: "Open Source Activities"
39+
SLACK_TITLE: "New Version Release!"
40+
SLACK_MESSAGE: "\n\n === ${{ github.repository }} (${{ steps.branch_name.outputs.SOURCE_TAG }}) ==="
41+
SLACK_FOOTER: "Powered by Element Creative Studio"
42+
SLACK_ICON: "https://cdn.elementcreativestudio.com/github.png"

.github/workflows/gcr-deployment.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Deploy to GCR
2+
3+
on:
4+
push:
5+
tags:
6+
- 'gcr-v*'
7+
8+
jobs:
9+
Release:
10+
name: Release
11+
runs-on: ubuntu-20.04
12+
steps:
13+
- uses: actions/checkout@v2
14+
15+
# Getting tag name for docker image and full tag name.
16+
- name: Get tag version
17+
id: branch_name
18+
run: |
19+
echo ::set-output name=SOURCE_TAG_DOCKER_IMAGE::${GITHUB_REF#refs/tags/gcr-v}
20+
echo ::set-output name=SOURCE_TAG::${GITHUB_REF#refs/tags/}
21+
22+
# Deploying image to Google Container Registry
23+
- name: Deploying docker image to GCR
24+
uses: RaccoonDev/push-docker-gcr@v1
25+
with:
26+
gcr_host: gcr.io
27+
image_name: vaadin-app
28+
image_tag: ${{ steps.branch_name.outputs.SOURCE_TAG_DOCKER_IMAGE }}
29+
env:
30+
GCLOUD_SERVICE_KEY: ${{ secrets.GCLOUD_SERVICE_KEY }}
31+
GOOGLE_PROJECT_ID: ${{ secrets.GOOGLE_PROJECT_ID }}
32+
33+
# Notify engineers via slack
34+
- name: Notify slack
35+
uses: rtCamp/action-slack-notify@v2
36+
env:
37+
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_OPEN_SOURCE }}
38+
SLACK_USERNAME: "Open Source Activities"
39+
SLACK_TITLE: "New Version Release!"
40+
SLACK_MESSAGE: "\n\n === ${{ github.repository }} (${{ steps.branch_name.outputs.SOURCE_TAG }}) ==="
41+
SLACK_FOOTER: "Powered by Element Creative Studio"
42+
SLACK_ICON: "https://cdn.elementcreativestudio.com/github.png"

.github/workflows/vm-deployment.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Deploy to VM Instance(s)
2+
3+
on:
4+
push:
5+
tags:
6+
- 'vm-v*'
7+
8+
jobs:
9+
Release:
10+
name: Release
11+
runs-on: ubuntu-20.04
12+
steps:
13+
- uses: actions/checkout@v2
14+
15+
# Getting tag name for docker image and full tag name.
16+
- name: Get tag version
17+
id: branch_name
18+
run: |
19+
echo ::set-output name=SOURCE_TAG_DOCKER_IMAGE::${GITHUB_REF#refs/tags/vm-v}
20+
echo ::set-output name=SOURCE_TAG::${GITHUB_REF#refs/tags/}
21+
22+
# Login to Docker
23+
- name: Login to DockerHub
24+
uses: docker/login-action@v1
25+
with:
26+
username: ${{ secrets.DOCKERHUB_USERNAME }}
27+
password: ${{ secrets.DOCKERHUB_TOKEN }}
28+
29+
# Build and push docker image to Dockerhub
30+
- name: Build and push
31+
id: docker_build
32+
uses: docker/build-push-action@v2
33+
with:
34+
push: true
35+
tags: namikazebadri/vaadin-app:${{ steps.branch_name.outputs.SOURCE_TAG_DOCKER_IMAGE }}
36+
37+
# Outputting image digest from push
38+
- name: Image digest
39+
run: echo ${{ steps.docker_build.outputs.digest }}
40+
41+
# Deploying image to VM Machine using docker
42+
- name: Deploying docker image to VM Machine
43+
uses: appleboy/ssh-action@master
44+
with:
45+
host: ${{ secrets.SSH_HOST }}
46+
username: ubuntu
47+
key: ${{ secrets.SSH_PRIVATE_KEY }}
48+
port: 22
49+
script: |
50+
whoami
51+
docker run -d -p 8080:8080 --name vaadin-app namikazebadri/vaadin-app:${{ steps.branch_name.outputs.SOURCE_TAG_DOCKER_IMAGE }}
52+
53+
# Notify engineers via slack
54+
- name: Notify slack
55+
uses: rtCamp/action-slack-notify@v2
56+
env:
57+
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_OPEN_SOURCE }}
58+
SLACK_USERNAME: "Open Source Activities"
59+
SLACK_TITLE: "New Version Release!"
60+
SLACK_MESSAGE: "\n\n === ${{ github.repository }} (${{ steps.branch_name.outputs.SOURCE_TAG }}) ==="
61+
SLACK_FOOTER: "Powered by Element Creative Studio"
62+
SLACK_ICON: "https://cdn.elementcreativestudio.com/github.png"

0 commit comments

Comments
 (0)