PROD FRONTEND DEPLOYMENT WITH TAG #280
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |