Skip to content

Commit 12d6e56

Browse files
committed
created a separate workflow for deployment
1 parent fc50d1f commit 12d6e56

File tree

2 files changed

+58
-38
lines changed

2 files changed

+58
-38
lines changed

.github/workflows/deploy.yml

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Deploy to VM
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
env:
9+
VM_HOST: ${{ secrets.VM_HOST }}
10+
CONTAINER_NAME: celestia-web
11+
IMAGE_NAME: ghcr.io/celestiaorg/celestia.org:latest
12+
13+
jobs:
14+
deploy:
15+
runs-on: ubuntu-latest
16+
if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }}
17+
18+
steps:
19+
- name: Configure SSH
20+
run: |
21+
mkdir -p ~/.ssh/
22+
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_key
23+
chmod 600 ~/.ssh/deploy_key
24+
echo "${{ secrets.SSH_KNOWN_HOSTS }}" > ~/.ssh/known_hosts
25+
26+
- name: Login to GitHub Container Registry on VM
27+
run: |
28+
ssh -i ~/.ssh/deploy_key ${{ secrets.SSH_USER }}@${{ env.VM_HOST }} \
29+
"echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin"
30+
31+
- name: Deploy to VM
32+
run: |
33+
ssh -i ~/.ssh/deploy_key ${{ secrets.SSH_USER }}@${{ env.VM_HOST }} "\
34+
docker pull ${{ env.IMAGE_NAME }} && \
35+
docker stop ${{ env.CONTAINER_NAME }} || true && \
36+
docker rm ${{ env.CONTAINER_NAME }} || true && \
37+
docker run -d \
38+
--name ${{ env.CONTAINER_NAME }} \
39+
--restart unless-stopped \
40+
-p 3000:3000 \
41+
-e MAILCHIMP_API_KEY='${{ secrets.MAILCHIMP_API_KEY }}' \
42+
-e MAILCHIMP_LIST_ID='${{ secrets.MAILCHIMP_LIST_ID }}' \
43+
-e MAILCHIMP_SERVER_PREFIX='${{ secrets.MAILCHIMP_SERVER_PREFIX }}' \
44+
-e NEXT_PUBLIC_RECAPTCHA_SITE_KEY='${{ secrets.NEXT_PUBLIC_RECAPTCHA_SITE_KEY }}' \
45+
-e RECAPTCHA_SECRET_KEY='${{ secrets.RECAPTCHA_SECRET_KEY }}' \
46+
-e NEXT_PUBLIC_SITE_URL='${{ secrets.NEXT_PUBLIC_SITE_URL }}' \
47+
-e ENV_MODE='${{ github.event.inputs.environment || 'production' }}' \
48+
${{ env.IMAGE_NAME }}"
49+
50+
- name: Verify Deployment
51+
run: |
52+
ssh -i ~/.ssh/deploy_key ${{ secrets.SSH_USER }}@${{ env.VM_HOST }} "\
53+
if ! docker ps | grep -q ${{ env.CONTAINER_NAME }}; then \
54+
echo 'Container is not running' && exit 1; \
55+
fi && \
56+
echo 'Container is running successfully' && \
57+
docker logs --tail 50 ${{ env.CONTAINER_NAME }}"

.github/workflows/docker-build-publish.yml

+1-38
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ env:
1515
RECAPTCHA_SECRET_KEY: ${{ secrets.RECAPTCHA_SECRET_KEY }}
1616
NEXT_PUBLIC_SITE_URL: ${{ secrets.NEXT_PUBLIC_SITE_URL }}
1717
ENV_MODE: production
18-
VM_HOST: 34.40.2.95
1918

2019
jobs:
2120
build:
@@ -38,40 +37,4 @@ jobs:
3837
- name: Build and Run
3938
run: |
4039
docker build --build-arg MAILCHIMP_API_KEY=$MAILCHIMP_API_KEY --build-arg MAILCHIMP_LIST_ID=$MAILCHIMP_LIST_ID --build-arg MAILCHIMP_SERVER_PREFIX=$MAILCHIMP_SERVER_PREFIX --build-arg NEXT_PUBLIC_RECAPTCHA_SITE_KEY=$NEXT_PUBLIC_RECAPTCHA_SITE_KEY --build-arg RECAPTCHA_SECRET_KEY=$RECAPTCHA_SECRET_KEY --build-arg NEXT_PUBLIC_SITE_URL=$NEXT_PUBLIC_SITE_URL --build-arg ENV_MODE=$ENV_MODE -t ghcr.io/celestiaorg/celestia.org:latest .
41-
docker push ghcr.io/celestiaorg/celestia.org:latest
42-
43-
deploy:
44-
needs: build
45-
runs-on: ubuntu-latest
46-
47-
steps:
48-
- name: Configure SSH
49-
run: |
50-
mkdir -p ~/.ssh/
51-
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_key
52-
chmod 600 ~/.ssh/deploy_key
53-
echo "${{ secrets.SSH_KNOWN_HOSTS }}" > ~/.ssh/known_hosts
54-
55-
- name: Login to GitHub Container Registry on VM
56-
run: |
57-
ssh -i ~/.ssh/deploy_key ${{ secrets.SSH_USER }}@${{ env.VM_HOST }} \
58-
"echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.repository_owner }} --password-stdin"
59-
60-
- name: Deploy to VM
61-
run: |
62-
ssh -i ~/.ssh/deploy_key ${{ secrets.SSH_USER }}@${{ env.VM_HOST }} "\
63-
docker pull ghcr.io/celestiaorg/celestia.org:latest && \
64-
docker stop celestia-web || true && \
65-
docker rm celestia-web || true && \
66-
docker run -d \
67-
--name celestia-web \
68-
--restart unless-stopped \
69-
-p 3000:3000 \
70-
-e MAILCHIMP_API_KEY='${{ secrets.MAILCHIMP_API_KEY }}' \
71-
-e MAILCHIMP_LIST_ID='${{ secrets.MAILCHIMP_LIST_ID }}' \
72-
-e MAILCHIMP_SERVER_PREFIX='${{ secrets.MAILCHIMP_SERVER_PREFIX }}' \
73-
-e NEXT_PUBLIC_RECAPTCHA_SITE_KEY='${{ secrets.NEXT_PUBLIC_RECAPTCHA_SITE_KEY }}' \
74-
-e RECAPTCHA_SECRET_KEY='${{ secrets.RECAPTCHA_SECRET_KEY }}' \
75-
-e NEXT_PUBLIC_SITE_URL='${{ secrets.NEXT_PUBLIC_SITE_URL }}' \
76-
-e ENV_MODE='${{ env.ENV_MODE }}' \
77-
ghcr.io/celestiaorg/celestia.org:latest"
40+
docker push ghcr.io/celestiaorg/celestia.org:latest

0 commit comments

Comments
 (0)