diff --git a/.github/workflows/update_primary_nginx.yml b/.github/workflows/update_primary_nginx.yml index 9733e17..53d5eb5 100644 --- a/.github/workflows/update_primary_nginx.yml +++ b/.github/workflows/update_primary_nginx.yml @@ -1,4 +1,4 @@ -name: UNFINISHED - setup nginx from the configuration file +name: Setup nginx from the configuration file on: workflow_dispatch: @@ -6,26 +6,43 @@ on: jobs: deploy: runs-on: self-hosted - + steps: - name: Checkout repository uses: actions/checkout@v3 - - name: Dotenv Action + + - name: Load environment variables uses: falti/dotenv-action@v1.1.4 with: + env-file: .env export-variables: true keys-case: bypass - name: Check environment variables run: env - #Doesn't work properly, envsubst replaces all instances of $variable and ${variable}, but we want to keep e.g., $host as nginx variables - #- name: Create temporary nginx config file - # run: envsubst < ./nginx_template.txt > temp_default.conf - # Maybe look at https://www.baeldung.com/linux/envsubst-command to get an idea - - - name: Copy temporary file to correct place - run: cp temp_default.conf /etc/nginx/conf.d/default.conf + - name: Replace environment variables in nginx config + run: | + # Use sed to selectively replace only the variables defined in .env + sed -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_securefit.conf > temp_nginx.conf + + - name: Copy nginx config to correct place + run: | + sudo cp temp_nginx.conf /etc/nginx/conf.d/nginx_securefit.conf + sudo chmod 644 /etc/nginx/conf.d/nginx_securefit.conf # Ensure correct permissions + + - name: Restart nginx + run: sudo systemctl reload nginx - name: Show nginx file - run: cat /etc/nginx/conf.d/default.conf + run: cat /etc/nginx/conf.d/nginx_securefit.conf