Skip to content

Commit

Permalink
update github action
Browse files Browse the repository at this point in the history
  • Loading branch information
andrechristikan committed Nov 9, 2023
1 parent dac75bf commit 8aa8e5a
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 9 deletions.
84 changes: 78 additions & 6 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ on:
workflow_dispatch:

jobs:
deploy:
deploy_production:
runs-on: ubuntu-latest
environment: baibay
if: ${{ github.ref_name == 'main' }}
environment: production

env:
APP_NAME: ${{ github.event.repository.name }}
APP_PORT: 3000
APP_PORT_EXPOSE: 3000
APP_NETWORK: app-network

steps:
Expand Down Expand Up @@ -50,17 +50,89 @@ jobs:
uses: fifsky/ssh-action@master
with:
command: |
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.APP_NAME}}:${{ steps.git.outputs.short_sha }}
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.APP_NAME}}_${{ github.ref_name }}:${{ steps.git.outputs.short_sha }}
docker stop ${{ env.APP_NAME}} && docker rm ${{ env.APP_NAME}}
docker network create ${{ env.APP_NETWORK }} --driver=bridge
docker run -itd \
--hostname ${{ env.APP_NAME}} \
--publish ${{ env.APP_PORT_EXPOSE }}:${{ env.APP_PORT }} \
--publish ${{ secrets.APP_PORT }}:${{ env.APP_PORT }} \
--network ${{ env.APP_NETWORK }} \
--volume /app/${{ env.APP_NAME}}/logs/:/app/logs/ \
--volume /app/${{ env.APP_NAME}}/.env:/app/.env \
--restart unless-stopped \
--name ${{ env.APP_NAME}} ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.APP_NAME}}:v${{ steps.version.outputs.current-version}}
--name ${{ env.APP_NAME}} ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.APP_NAME }}_${{ github.ref_name }}:v${{ steps.version.outputs.current-version}}_sha-${{ steps.git.outputs.short_sha }}
host: ${{ secrets.SSH_HOST }}
port: ${{ secrets.SSH_PORT }}
user: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY}}

- name: Clean
uses: fifsky/ssh-action@master
continue-on-error: true
with:
command: |
docker container prune --force
docker image prune --force
docker rmi $(docker images **/${{ secrets.APP_NAME }} -q) --force
host: ${{ secrets.SSH_HOST }}
port: ${{ secrets.SSH_PORT }}
user: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY}}


deploy_staging:
runs-on: ubuntu-latest
if: ${{ github.ref_name == 'staging' }}
environment: staging

env:
APP_NAME: ${{ github.event.repository.name }}
APP_PORT: 3000
APP_NETWORK: app-network

steps:
- name: Get short sha commit
id: git
run: |
echo "$(git rev-parse --short "$GITHUB_SHA")"
- name: Get latest version
id: version
uses: martinbeentjes/npm-get-version-action@main

- name: Git
run: |
echo Branch name is: ${{ github.ref_name }}
echo Short sha: ${{ steps.git.outputs.short_sha}}
echo Version is: ${{ steps.version.outputs.current-version}}
- name: Environment
run: |
echo APP_NAME is: ${{ env.APP_NAME}}
echo APP_PORT is: ${{ env.APP_PORT}}
echo APP_NETWORK is: ${{ env.APP_NETWORK}}
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Deploy
uses: fifsky/ssh-action@master
with:
command: |
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.APP_NAME}}_${{ github.ref_name }}:${{ steps.git.outputs.short_sha }}
docker stop ${{ env.APP_NAME}} && docker rm ${{ env.APP_NAME}}
docker network create ${{ env.APP_NETWORK }} --driver=bridge
docker run -itd \
--hostname ${{ env.APP_NAME}} \
--publish ${{ secrets.APP_PORT }}:${{ env.APP_PORT }} \
--network ${{ env.APP_NETWORK }} \
--volume /app/${{ env.APP_NAME}}/logs/:/app/logs/ \
--volume /app/${{ env.APP_NAME}}/.env:/app/.env \
--restart unless-stopped \
--name ${{ env.APP_NAME}} ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.APP_NAME }}_${{ github.ref_name }}:v${{ steps.version.outputs.current-version}}_sha-${{ steps.git.outputs.short_sha }}
host: ${{ secrets.SSH_HOST }}
port: ${{ secrets.SSH_PORT }}
user: ${{ secrets.SSH_USER }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
jobs:
build:
runs-on: ubuntu-latest
environment: baibay
environment: staging

env:
APP_NAME: ${{ github.event.repository.name }}
Expand Down
15 changes: 14 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
jobs:
test:
runs-on: ubuntu-latest
environment: baibay
environment: staging

strategy:
matrix:
Expand Down Expand Up @@ -78,13 +78,26 @@ jobs:
echo SSO_GOOGLE_CLIENT_SECRET="$SSO_GOOGLE_CLIENT_SECRET" >> .env
echo SSO_GOOGLE_CALLBACK_URL_LOGIN="localhost:3000/api/callback" >> .env
echo SSO_GOOGLE_CALLBACK_URL_SIGN_UP="localhost:3000/api/callback" >> .env
echo EMAIL_KEY="$EMAIL_KEY" >> .env
echo WHATAPPS_CLIENT_ID="$WHATAPPS_CLIENT_ID" >> .env
echo WHATAPPS_CLIENT_SECRET="$WHATAPPS_CLIENT_SECRET" >> .env
echo PUSH_NOTIFICATION_APP_ID="$PUSH_NOTIFICATION_APP_ID" >> .env
echo PUSH_NOTIFICATION_API_KEY="$PUSH_NOTIFICATION_API_KEY" >> .env
env:
AWS_CREDENTIAL_KEY: ${{ secrets.AWS_CREDENTIAL_KEY }}
AWS_CREDENTIAL_SECRET: ${{ secrets.AWS_CREDENTIAL_SECRET }}
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_S3_REGION: ${{ secrets.AWS_S3_REGION }}
SSO_GOOGLE_CLIENT_ID: ${{ secrets.SSO_GOOGLE_CLIENT_ID }}
SSO_GOOGLE_CLIENT_SECRET: ${{ secrets.SSO_GOOGLE_CLIENT_SECRET }}
EMAIL_KEY: ${{ secrets.EMAIL_KEY }}
WHATAPPS_CLIENT_ID: ${{ secrets.WHATAPPS_CLIENT_ID }}
WHATAPPS_CLIENT_SECRET: ${{ secrets.WHATAPPS_CLIENT_SECRET }}
PUSH_NOTIFICATION_APP_ID: ${{ secrets.PUSH_NOTIFICATION_APP_ID }}
PUSH_NOTIFICATION_API_KEY: ${{ secrets.PUSH_NOTIFICATION_API_KEY }}

- name: Unit Test
run: yarn test
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ack-nestjs-boilerplate",
"version": "5.7.1",
"version": "5.7.0",
"description": "Ack NestJs Boilerplate",
"repository": {
"type": "git",
Expand Down

0 comments on commit 8aa8e5a

Please sign in to comment.