Setup nginx from the configuration file #8
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: 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 and other variables | |
| - name: Debug variables | |
| run: | | |
| echo "DEV_PORT_PREFIX: ${DEV_PORT_PREFIX}" | |
| echo "STAG_PORT_PREFIX: ${STAG_PORT_PREFIX}" | |
| echo "PROD_PORT_PREFIX: ${PROD_PORT_PREFIX}" | |
| echo "GATEWAY_POSTFIX: ${GATEWAY_POSTFIX}" | |
| echo "BACKEND_POSTFIX: ${BACKEND_POSTFIX}" | |
| echo "FRONTEND_POSTFIX: ${FRONTEND_POSTFIX}" | |
| # 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 |