Skip to content

PROD FRONTEND DEPLOYMENT WITH TAG #37

PROD FRONTEND DEPLOYMENT WITH TAG

PROD FRONTEND DEPLOYMENT WITH TAG #37

name: PROD FRONTEND DEPLOYMENT WITH TAG
on:
push:
tags:
- 'v*'
jobs:
PROD-FRONTEND-TAG-BASE-DEPLOYMENT:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set TAG environment variable
id: get_tag
run: |
# Extract the tag from the ref and set it as an environment variable
echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Debug TAG value
run: |
# Print the TAG value to ensure the correct tag is being used
echo "TAG value - ${{ env.TAG }}"
- name: Deploy Stack
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST_NAME_PROD }}
username: ${{ secrets.USERNAME_PROD }}
key: ${{ secrets.SSH_KEY_PROD }}
port: ${{ secrets.PORT_PROD }}
script: |
# Assign the TAG value from the environment variable
TAG="${{ env.TAG }}"
# Define the target directory and environment file
TARGET_DIR="${{ secrets.TARGET_DIR_PROD }}"
ENVIRONMENT="$TARGET_DIR/.env"
# Remove the existing .env file if it exists
if [ -f "$ENVIRONMENT" ]; then
rm "$ENVIRONMENT"
fi
# Create the target directory if it doesn't exist and write environment variables to .env
mkdir -p "$TARGET_DIR"
cat << EOF > "$ENVIRONMENT"
${{ secrets.PROD_ENV }}
EOF
# Navigate to the target directory
cd ${{ secrets.TARGET_DIR_PROD }}
# List the contents of the directory for verification
ls -ltra
# Run the deployment script with the correct TAG
./deploy.sh $TAG