name: Setup PostgreSQL Database on: workflow_dispatch: inputs: database_name: description: 'Database name' required: false default: 'homeassistant' username: description: 'Database user' required: false default: 'homeassistant' jobs: setup-database: runs-on: ubuntu-latest steps: - name: Create database and user env: DB_HOST: ${{ secrets.POSTGRES_HOST }} DB_PORT: ${{ secrets.POSTGRES_PORT }} PGPASSWORD: ${{ secrets.POSTGRES_ROOT_PASSWORD }} DB_NAME: ${{ inputs.database_name }} DB_USER: ${{ inputs.username }} DB_PASSWORD: ${{ secrets.DB_PASSWORD }} run: | psql -h ${DB_HOST} -p ${DB_PORT} -U postgres -c "CREATE DATABASE ${DB_NAME};" psql -h ${DB_HOST} -p ${DB_PORT} -U postgres -c "CREATE USER ${DB_USER} WITH PASSWORD '${DB_PASSWORD}';" psql -h ${DB_HOST} -p ${DB_PORT} -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE ${DB_NAME} TO ${DB_USER};" - name: Verify setup env: DB_HOST: ${{ secrets.POSTGRES_HOST }} DB_PORT: ${{ secrets.POSTGRES_PORT }} PGPASSWORD: ${{ secrets.POSTGRES_ROOT_PASSWORD }} DB_NAME: ${{ inputs.database_name }} DB_USER: ${{ inputs.username }} run: | echo "Database setup completed successfully!" psql -h ${DB_HOST} -p ${DB_PORT} -U postgres -c "\l" | grep ${DB_NAME} psql -h ${DB_HOST} -p ${DB_PORT} -U postgres -c "\du" | grep ${DB_USER}