@@ -1995,6 +1995,75 @@ jobs:
19951995"# . to_string ( )
19961996}
19971997
1998+ #[ cfg( feature = "fastapi" ) ]
1999+ fn create_production_deploy_file ( ) -> String {
2000+ r#"name: Deploy to Production
2001+ on:
2002+ release:
2003+ types:
2004+ - published
2005+ jobs:
2006+ deploy:
2007+ runs-on:
2008+ - self-hosted
2009+ - production
2010+ env:
2011+ ENVIRONMENT: production
2012+ DOMAIN: ${{ secrets.DOMAIN_PRODUCTION }}
2013+ STACK_NAME: ${{ secrets.STACK_NAME_PRODUCTION }}
2014+ SECRET_KEY: ${{ secrets.SECRET_KEY }}
2015+ FIRST_SUPERUSER_EMAIL: ${{ secrets.FIRST_SUPERUSER_EMAIL }}
2016+ FIRST_SUPERUSER_PASSWORD: ${{ secrets.FIRST_SUPERUSER_PASSWORD }}
2017+ FIRST_SUPERUSER_NAME: ${{ secrets.FIRST_SUPERUSER_NAME }}
2018+ POSTGRES_HOST: ${{ secrets.POSTGRES_HOST }}
2019+ POSTGRES_USER: ${{ secrets.POSTGRES_USER }}
2020+ POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
2021+ POSTGRES_DB: ${{ secrets.POSTGRES_DB }}
2022+ VALKEY_HOST: ${{ secrets.VALKEY_HOST }}
2023+ VALKEY_PASSWORD: ${{ secrets.VALKEY_PASSWORD }}
2024+ USERNAME: ${{ secrets.FIRST_SUPERUSER_EMAIL }}
2025+ PASSWORD: ${{ secrets.FIRST_SUPERUSER_PASSWORD }}
2026+ EMAIL: ${{ secrets.FIRST_SUPERUSER_EMAIL }}
2027+ LOG_LEVEL: "INFO"
2028+ steps:
2029+ - name: Fix permissions
2030+ run: |
2031+ if [ -d "./data" ]; then
2032+ sudo chown -R $USER:$USER ./data
2033+ fi
2034+ - name: Checkout
2035+ uses: actions/checkout@v5
2036+ - name: Create .env file
2037+ run: |
2038+ HASHED_PASSWORD=$(openssl passwd -apr1 "${PASSWORD}" | sed 's/\$/\$\$/g')
2039+ cat > .env << EOF
2040+ ENVIRONMENT=${ENVIRONMENT}
2041+ DOMAIN=${DOMAIN}
2042+ STACK_NAME=${STACK_NAME}
2043+ SECRET_KEY=${SECRET_KEY}
2044+ FIRST_SUPERUSER_EMAIL=${FIRST_SUPERUSER_EMAIL}
2045+ FIRST_SUPERUSER_PASSWORD=${FIRST_SUPERUSER_PASSWORD}
2046+ FIRST_SUPERUSER_NAME=${FIRST_SUPERUSER_NAME}
2047+ POSTGRES_HOST=${POSTGRES_HOST}
2048+ POSTGRES_USER=${POSTGRES_USER}
2049+ POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
2050+ POSTGRES_DB=${POSTGRES_DB}
2051+ VALKEY_HOST=${VALKEY_HOST}
2052+ VALKEY_PASSWORD=${VALKEY_PASSWORD}
2053+ USERNAME=${FIRST_SUPERUSER_EMAIL}
2054+ PASSWORD=${FIRST_SUPERUSER_PASSWORD}
2055+ HASHED_PASSWORD=${HASHED_PASSWORD}
2056+ EMAIL=${FIRST_SUPERUSER_EMAIL}
2057+ LOG_LEVEL=${LOG_LEVEL}
2058+ EOF
2059+ - name: Build and restart containers
2060+ timeout-minutes: 15
2061+ run: |
2062+ docker compose -f docker-compose.yml --project-name ${{ secrets.STACK_NAME_PRODUCTION }} build
2063+ docker compose -f docker-compose.yml --project-name ${{ secrets.STACK_NAME_PRODUCTION }} up -d
2064+ "# . to_string ( )
2065+ }
2066+
19982067#[ cfg( feature = "fastapi" ) ]
19992068pub fn save_deploy_files ( project_info : & ProjectInfo ) -> Result < ( ) > {
20002069 let testing_file_path = project_info
@@ -2007,7 +2076,7 @@ pub fn save_deploy_files(project_info: &ProjectInfo) -> Result<()> {
20072076 let production_file_path = project_info
20082077 . base_dir ( )
20092078 . join ( ".github/workflows/deploy_production.yml" ) ;
2010- let production_content = create_testing_deploy_file ( ) ;
2079+ let production_content = create_production_deploy_file ( ) ;
20112080
20122081 save_file_with_content ( & production_file_path, & production_content) ?;
20132082
0 commit comments