Skip to content

Setup nginx from the configuration file #11

Setup nginx from the configuration file

Setup nginx from the configuration file #11

name: FINISHED and edited - 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
# - name: Check environment variables
# run: env
# - name: Debug: Print Environment Variables
# run: |
# env | grep DEV_ || echo "No DEV_ variables found"
- name: Set environment variables
run: |
echo "DEV_PORT_PREFIX=80" >> $GITHUB_ENV
echo "STAG_PORT_PREFIX=443" >> $GITHUB_ENV
echo "GATEWAY_POSTFIX=" >> $GITHUB_ENV
- name: Verify environment variables
run: cat $GITHUB_ENV
- name: Generate Nginx configuration
run: cat ./nginx_template.txt | envsubst > temp_default.conf
- name: Show generated Nginx configuration
run: cat temp_default.conf
- name: Copy Nginx config to the correct location
run: sudo cp temp_default.conf /etc/nginx/conf.d/default.conf
- name: Test NGINX Configuration
run: sudo nginx -t
- name: Restart NGINX
run: sudo systemctl reload nginx
#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: Create temporary nginx config file
run: envsubst '$REPLACE_ME $ANOTHER_VAR' < ./nginx_template.txt > temp_default.conf
# - name: Create temporary nginx config file
# run: envsubst '$REPLACE_ME $ANOTHER_VAR' < ./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
# - name: Copy temporary file to correct place
# run: sudo cp temp_default.conf /etc/nginx/conf.d/default.conf
#added sudo here
- name: Show nginx file
run: cat /etc/nginx/conf.d/default.conf
# - name: Show nginx file
# run: cat /etc/nginx/conf.d/default.conf
- name: Test NGINX Configuration
run: sudo nginx -t
# - name: Test NGINX Configuration
# run: sudo nginx -t
- name: Restart NGINX
run: sudo systemctl reload nginx
# - name: Restart NGINX
# run: sudo systemctl reload nginx