Skip to content

Setup nginx from the configuration file #7

Setup nginx from the configuration file

Setup nginx from the configuration file #7

name: Setup nginx from the configuration file
on:
workflow_dispatch:
jobs:
deploy:
runs-on: self-hosted
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Dotenv Action
uses: falti/dotenv-action@v1.1.4
with:
export-variables: true
keys-case: bypass
- name: Check environment variables
run: env
# Compute DEV_PORT_PREFIX, STAG_PORT_PREFIX, and PROD_PORT_PREFIX
- name: Compute port prefixes
run: |
DEV_PORT_PREFIX="${PORT_PREFIX}${GROUP_ID}${DEV_POSTFIX}"
STAG_PORT_PREFIX="${PORT_PREFIX}${GROUP_ID}${STAG_POSTFIX}"
PROD_PORT_PREFIX="${PORT_PREFIX}${GROUP_ID}${PROD_POSTFIX}"
echo "DEV_PORT_PREFIX=${DEV_PORT_PREFIX}" >> $GITHUB_ENV
echo "STAG_PORT_PREFIX=${STAG_PORT_PREFIX}" >> $GITHUB_ENV
echo "PROD_PORT_PREFIX=${PROD_PORT_PREFIX}" >> $GITHUB_ENV
# Debug: Print computed port prefixes
- name: Debug port prefixes
run: |
echo "DEV_PORT_PREFIX: ${DEV_PORT_PREFIX}"
echo "STAG_PORT_PREFIX: ${STAG_PORT_PREFIX}"
echo "PROD_PORT_PREFIX: ${PROD_PORT_PREFIX}"
# Use sed with a different delimiter (|) to avoid issues with forward slashes
- name: Create temporary nginx config file
run: |
sed -e "s|\${DEV_PORT_PREFIX}|${DEV_PORT_PREFIX}|g" \
-e "s|\${STAG_PORT_PREFIX}|${STAG_PORT_PREFIX}|g" \
-e "s|\${PROD_PORT_PREFIX}|${PROD_PORT_PREFIX}|g" \
-e "s|\$GROUP_ID|$GROUP_ID|g" \
-e "s|\$DOMAIN|$DOMAIN|g" \
-e "s|\$URL_PREFIX|$URL_PREFIX|g" \
-e "s|\$PORT_PREFIX|$PORT_PREFIX|g" \
-e "s|\$DEV_POSTFIX|$DEV_POSTFIX|g" \
-e "s|\$STAG_POSTFIX|$STAG_POSTFIX|g" \
-e "s|\$PROD_POSTFIX|$PROD_POSTFIX|g" \
-e "s|\$BACKEND_POSTFIX|$BACKEND_POSTFIX|g" \
-e "s|\$FRONTEND_POSTFIX|$FRONTEND_POSTFIX|g" \
-e "s|\$GATEWAY_POSTFIX|$GATEWAY_POSTFIX|g" \
./nginx_template.txt > temp_default.conf
- name: Copy temporary file to correct place
run: |
sudo cp temp_default.conf /etc/nginx/conf.d/default.conf
sudo cp ./nginx_securefit.conf /etc/nginx/conf.d/nginx_securefit.conf
- name: Show nginx files
run: |
cat /etc/nginx/conf.d/default.conf
cat /etc/nginx/conf.d/nginx_securefit.conf
- name: Reload nginx
run: sudo nginx -s reload