Skip to content

Update PR-deploy.yml #1

Update PR-deploy.yml

Update PR-deploy.yml #1

Workflow file for this run

name: PR Deploy
on:
pull_request:
types: [opened, synchronize, reopened, closed]
push:
branches:
- staging
- main
- devops
jobs:
build_and_deploy:
if: github.event_name == 'push'
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Build Docker Image
run: |
IMAGE_TAG="latest"
docker buildx build --tag delve_be:${IMAGE_TAG} --file Dockerfile .
- name: List Docker Images
run: docker images
- name: Save Docker Image
run: |
IMAGE_TAG="latest"
docker save delve_be:${IMAGE_TAG} -o delve_be.tar
- name: Upload Docker Image Artifact
uses: actions/upload-artifact@v2
with:
name: docker-image
path: delve_be.tar
deploy_to_staging:
if: github.event_name == 'push' && (github.ref == 'refs/heads/staging')
needs: build_and_deploy
runs-on: ubuntu-latest
steps:
- name: Download Docker Image Artifact
uses: actions/download-artifact@v2
with:
name: docker-image
path: .
- name: Transfer Docker Image to Server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_KEY }}
source: delve_be.tar
target: /tmp/php
- name: Load and Deploy Docker Image on Server
uses: appleboy/[email protected]
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_KEY }}
script: |
IMAGE_TAG="latest"
cd /tmp/php
docker load < delve_be.tar
rm -f delve_be-${IMAGE_TAG}.tar
cd /var/www/langlearnai-be/pr-staging
git pull origin devops
docker-compose -f docker-compose.staging.yml down
docker-compose -f docker-compose.staging.yml up -d
deploy_to_prod:
if: github.event_name == 'push' && (github.ref == 'refs/heads/main')
needs: build_and_deploy
runs-on: ubuntu-latest
steps:
- name: Download Docker Image Artifact
uses: actions/download-artifact@v2
with:
name: docker-image
path: .
- name: Transfer Docker Image to Server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_KEY }}
source: delve_be.tar
target: /tmp/php
- name: Load and Deploy Docker Image on Server
uses: appleboy/[email protected]
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_KEY }}
script: |
IMAGE_TAG="latest"
cd /tmp/php
docker load < delve_be.tar
rm -f delve_be-${IMAGE_TAG}.tar
cd /var/www/langlearnai-be/pr-prod
git pull origin dev
docker-compose -f docker-compose.production.yml down
docker-compose -f docker-compose.production.yml up -d
deploy-pr:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- id: deploy
name: Pull Request Deploy
uses: hngprojects/pr-deploy@dev
with:
server_host: ${{ secrets.SSH_HOST }}
server_username: ${{ secrets.SSH_USER }}
server_password: ${{ secrets.SSH_PASSWORD }}
comment: true
context: '.'
dockerfile: 'Dockerfile'
exposed_port: '7001'
github_token: ${{ secrets.TOKEN }}
- name: Print Preview Url
run: |
echo "Preview Url: ${{ steps.deploy.outputs.preview-url }}"