🔥 Clean up old files no longer relevant (#608)
This commit is contained in:

committed by
GitHub

parent
72f835a6b4
commit
a065f9c9e8
@@ -25,7 +25,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
python-version: '3.10'
|
python-version: '3.10'
|
||||||
|
|
||||||
- name: Docker Compose build
|
- name: Run tests
|
||||||
run: docker compose build
|
run: docker compose build
|
||||||
- name: Docker Compose remove old containers and volumes
|
- name: Docker Compose remove old containers and volumes
|
||||||
run: docker compose down -v --remove-orphans
|
run: docker compose down -v --remove-orphans
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,5 +1,3 @@
|
|||||||
.vscode
|
.vscode
|
||||||
testing-project
|
|
||||||
.mypy_cache
|
.mypy_cache
|
||||||
poetry.lock
|
poetry.lock
|
||||||
dev-link/
|
|
||||||
|
12
.travis.yml
12
.travis.yml
@@ -1,12 +0,0 @@
|
|||||||
sudo: required
|
|
||||||
|
|
||||||
language: python
|
|
||||||
|
|
||||||
install:
|
|
||||||
- pip install cookiecutter
|
|
||||||
|
|
||||||
services:
|
|
||||||
- docker
|
|
||||||
|
|
||||||
script:
|
|
||||||
- bash ./scripts/test.sh
|
|
@@ -1,83 +0,0 @@
|
|||||||
# Contributing
|
|
||||||
|
|
||||||
Here are some short guidelines to guide you if you want to contribute to the development of the Full Stack FastAPI PostgreSQL project generator itself.
|
|
||||||
|
|
||||||
After you clone the project, there are several scripts that can help during development.
|
|
||||||
|
|
||||||
* `./scripts/dev-fsfp.sh`:
|
|
||||||
|
|
||||||
Generate a new default project `dev-fsfp`.
|
|
||||||
|
|
||||||
Call it from one level above the project directory. So, if the project is at `~/code/full-stack-fastapi-postgresql/`, call it from `~/code/`, like:
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ cd ~/code/
|
|
||||||
|
|
||||||
$ bash ./full-stack-fastapi-postgresql/scripts/dev-fsfp.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
It will generate a new project with all the defaults at `~/code/dev-fsfp/`.
|
|
||||||
|
|
||||||
You can go to that directory with a full new project, edit files and test things, for example:
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ cd ./dev-fsfp/
|
|
||||||
|
|
||||||
$ docker-compose up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
It is outside of the project generator directory to let you add Git to it and compare versions and changes.
|
|
||||||
|
|
||||||
* `./scripts/dev-fsfp-back.sh`:
|
|
||||||
|
|
||||||
Move the changes from a project `dev-fsfp` back to the project generator.
|
|
||||||
|
|
||||||
You would call it after calling `./scripts/dev-fsfp.sh` and adding some modifications to `dev-fsfp`.
|
|
||||||
|
|
||||||
Call it from one level above the project directory. So, if the project is at `~/code/full-stack-fastapi-postgresql/`, call it from `~/code/`, like:
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ cd ~/code/
|
|
||||||
|
|
||||||
$ bash ./full-stack-fastapi-postgresql/scripts/dev-fsfp-back.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
That will also contain all the generated files with the generated variables, but it will let you compare the changes in `dev-fsfp` and the source in the project generator with git, and see what to commit.
|
|
||||||
|
|
||||||
* `./scripts/discard-dev-files.sh`:
|
|
||||||
|
|
||||||
After using `./scripts/dev-fsfp-back.sh`, there will be a bunch of generated files with the variables for the generated project that you don't want to commit, like `README.md` and `.gitlab-ci.yml`.
|
|
||||||
|
|
||||||
To discard all those changes at once, run `discard-dev-files.sh` from the root of the project, e.g.:
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ cd ~/code/full-stack-fastapi-postgresql/
|
|
||||||
|
|
||||||
$ bash ./scripts/dev-fsfp-back.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
* `./scripts/test.sh`:
|
|
||||||
|
|
||||||
Run the tests. It creates a project `testing-project` *inside* of the project generator and runs its tests.
|
|
||||||
|
|
||||||
Call it from the root of the project, e.g.:
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ cd ~/code/full-stack-fastapi-postgresql/
|
|
||||||
|
|
||||||
$ bash ./scripts/test.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
* `./scripts/dev-link.sh`:
|
|
||||||
|
|
||||||
Set up a local directory with links to the files for live development with the source files.
|
|
||||||
|
|
||||||
This script generates a project `dev-link` *inside* the project generator, just to generate the `.env` and `./frontend/.env` files.
|
|
||||||
|
|
||||||
Then it removes everything except those 2 files.
|
|
||||||
|
|
||||||
Then it creates links for each of the source files, and adds those 2 files back.
|
|
||||||
|
|
||||||
The end result is that you can go into the `dev-link` directory and develop locally with it as if it was a generated project, with all the variables set. But all the changes are actually done directly in the source files.
|
|
||||||
|
|
||||||
This is probably a lot faster to iterate than using `./scripts/dev-fsfp.sh`. But it's tested only in Linux, it might not work in other systems.
|
|
@@ -112,10 +112,6 @@ The input variables, with their default values (some auto generated) are:
|
|||||||
* `project_slug`: The development friendly name of the project. By default, based on the project name
|
* `project_slug`: The development friendly name of the project. By default, based on the project name
|
||||||
* `domain_main`: The domain in where to deploy the project for production (from the branch `production`), used by the load balancer, backend, etc. By default, based on the project slug.
|
* `domain_main`: The domain in where to deploy the project for production (from the branch `production`), used by the load balancer, backend, etc. By default, based on the project slug.
|
||||||
* `domain_staging`: The domain in where to deploy while staging (before production) (from the branch `master`). By default, based on the main domain.
|
* `domain_staging`: The domain in where to deploy while staging (before production) (from the branch `master`). By default, based on the main domain.
|
||||||
|
|
||||||
* `docker_swarm_stack_name_main`: The name of the stack while deploying to Docker in Swarm mode for production. By default, based on the domain.
|
|
||||||
* `docker_swarm_stack_name_staging`: The name of the stack while deploying to Docker in Swarm mode for staging. By default, based on the domain.
|
|
||||||
|
|
||||||
* `secret_key`: Backend server secret key. Use the method above to generate it.
|
* `secret_key`: Backend server secret key. Use the method above to generate it.
|
||||||
* `first_superuser`: The first superuser generated, with it you will be able to create more users, etc. By default, based on the domain.
|
* `first_superuser`: The first superuser generated, with it you will be able to create more users, etc. By default, based on the domain.
|
||||||
* `first_superuser_password`: First superuser password. Use the method above to generate it.
|
* `first_superuser_password`: First superuser password. Use the method above to generate it.
|
||||||
|
@@ -1,22 +0,0 @@
|
|||||||
#! /usr/bin/env bash
|
|
||||||
|
|
||||||
# Run this script from outside the project, to integrate a dev-fsfp project with changes and review modifications
|
|
||||||
|
|
||||||
# Exit in case of error
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ ! -d ./full-stack-fastapi-postgresql ] ; then
|
|
||||||
echo "Run this script from outside the project, to integrate a sibling dev-fsfp project with changes and review modifications"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $(uname -s) = "Linux" ]; then
|
|
||||||
echo "Remove __pycache__ files"
|
|
||||||
sudo find ./dev-fsfp/ -type d -name __pycache__ -exec rm -r {} \+
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -rf ./full-stack-fastapi-postgresql/\{\{cookiecutter.project_slug\}\}/*
|
|
||||||
|
|
||||||
rsync -a --exclude=node_modules ./dev-fsfp/* ./full-stack-fastapi-postgresql/\{\{cookiecutter.project_slug\}\}/
|
|
||||||
|
|
||||||
rsync -a ./dev-fsfp/{.env,.gitignore,.gitlab-ci.yml} ./full-stack-fastapi-postgresql/\{\{cookiecutter.project_slug\}\}/
|
|
@@ -1,13 +0,0 @@
|
|||||||
#! /usr/bin/env bash
|
|
||||||
|
|
||||||
# Exit in case of error
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ ! -d ./full-stack-fastapi-postgresql ] ; then
|
|
||||||
echo "Run this script from outside the project, to generate a sibling dev-fsfp project with independent git"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -rf ./dev-fsfp
|
|
||||||
|
|
||||||
cookiecutter --no-input -f ./full-stack-fastapi-postgresql project_name="Dev FSFP"
|
|
@@ -1,34 +0,0 @@
|
|||||||
#! /usr/bin/env bash
|
|
||||||
|
|
||||||
# Exit in case of error
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Run this from the root of the project to generate a dev-link project
|
|
||||||
# It will contain a link to each of the files of the generator, except for
|
|
||||||
# .env and frontend/.env, that will be the generated ones
|
|
||||||
# This allows developing with a live stack while keeping the same source code
|
|
||||||
# Without having to generate dev-fsfp and integrating back all the files
|
|
||||||
|
|
||||||
rm -rf dev-link
|
|
||||||
mkdir -p tmp-dev-link/frontend
|
|
||||||
|
|
||||||
cookiecutter --no-input -f ./ project_name="Dev Link"
|
|
||||||
|
|
||||||
mv ./dev-link/.env ./tmp-dev-link/
|
|
||||||
mv ./dev-link/frontend/.env ./tmp-dev-link/frontend/
|
|
||||||
|
|
||||||
rm -rf ./dev-link/
|
|
||||||
mkdir -p ./dev-link/
|
|
||||||
|
|
||||||
cd ./dev-link/
|
|
||||||
|
|
||||||
for f in ../\{\{cookiecutter.project_slug\}\}/* ; do
|
|
||||||
ln -s "$f" ./
|
|
||||||
done
|
|
||||||
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
mv ./tmp-dev-link/.env ./dev-link/
|
|
||||||
mv ./tmp-dev-link/frontend/.env ./dev-link/frontend/
|
|
||||||
|
|
||||||
rm -rf ./tmp-dev-link
|
|
@@ -1,13 +0,0 @@
|
|||||||
#! /usr/bin/env bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
rm -rf \{\{cookiecutter.project_slug\}\}/.git
|
|
||||||
rm -rf \{\{cookiecutter.project_slug\}\}/backend/app/poetry.lock
|
|
||||||
rm -rf \{\{cookiecutter.project_slug\}\}/frontend/node_modules
|
|
||||||
rm -rf \{\{cookiecutter.project_slug\}\}/frontend/dist
|
|
||||||
git checkout \{\{cookiecutter.project_slug\}\}/README.md
|
|
||||||
git checkout \{\{cookiecutter.project_slug\}\}/.gitlab-ci.yml
|
|
||||||
git checkout \{\{cookiecutter.project_slug\}\}/cookiecutter-config-file.yml
|
|
||||||
git checkout \{\{cookiecutter.project_slug\}\}/.env
|
|
||||||
git checkout \{\{cookiecutter.project_slug\}\}/frontend/.env
|
|
@@ -1,20 +0,0 @@
|
|||||||
import json
|
|
||||||
from collections import OrderedDict
|
|
||||||
import oyaml as yaml
|
|
||||||
from pathlib import Path
|
|
||||||
cookie_path = Path('./cookiecutter.json')
|
|
||||||
out_path = Path('./{{cookiecutter.project_slug}}/cookiecutter-config-file.yml')
|
|
||||||
|
|
||||||
with open(cookie_path) as f:
|
|
||||||
cookie_config = json.load(f)
|
|
||||||
config_out = OrderedDict()
|
|
||||||
|
|
||||||
for key, value in cookie_config.items():
|
|
||||||
if key.startswith('_'):
|
|
||||||
config_out[key] = value
|
|
||||||
else:
|
|
||||||
config_out[key] = '{{ cookiecutter.' + key + ' }}'
|
|
||||||
config_out['_template'] = './'
|
|
||||||
|
|
||||||
with open(out_path, 'w') as out_f:
|
|
||||||
out_f.write(yaml.dump({'default_context': config_out}, line_break=None, width=200))
|
|
@@ -1,16 +0,0 @@
|
|||||||
#! /usr/bin/env bash
|
|
||||||
|
|
||||||
# Exit in case of error
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Run this from the root of the project
|
|
||||||
|
|
||||||
rm -rf ./testing-project
|
|
||||||
|
|
||||||
cookiecutter --no-input -f ./ project_name="Testing Project"
|
|
||||||
|
|
||||||
cd ./testing-project
|
|
||||||
|
|
||||||
bash ./scripts/test.sh "$@"
|
|
||||||
|
|
||||||
cd ../
|
|
3
src/.env
3
src/.env
@@ -1,6 +1,5 @@
|
|||||||
# Update this with your app domain
|
# Update this with your app domain
|
||||||
DOMAIN=localhost
|
DOMAIN=localhost
|
||||||
# DOMAIN=local.dockertoolbox.tiangolo.com
|
|
||||||
# DOMAIN=localhost.tiangolo.com
|
# DOMAIN=localhost.tiangolo.com
|
||||||
|
|
||||||
STACK_NAME=full-stack-fastapi-postgresql
|
STACK_NAME=full-stack-fastapi-postgresql
|
||||||
@@ -17,7 +16,7 @@ DOCKER_IMAGE_NEW_FRONTEND=new-frontend
|
|||||||
|
|
||||||
# Backend
|
# Backend
|
||||||
BACKEND_CORS_ORIGINS="[\"http://localhost\", \"http://localhost:4200\", \"http://localhost:3000\", \"http://localhost:8080\", \"https://localhost\", \"https://localhost:4200\", \"https://localhost:3000\", \"https://localhost:8080\", \"http://local.dockertoolbox.tiangolo.com\", \"http://localhost.tiangolo.com\"]"
|
BACKEND_CORS_ORIGINS="[\"http://localhost\", \"http://localhost:4200\", \"http://localhost:3000\", \"http://localhost:8080\", \"https://localhost\", \"https://localhost:4200\", \"https://localhost:3000\", \"https://localhost:8080\", \"http://local.dockertoolbox.tiangolo.com\", \"http://localhost.tiangolo.com\"]"
|
||||||
PROJECT_NAME="Full Stack FastAPI PostgreSQL"
|
PROJECT_NAME="FastAPI Project"
|
||||||
SECRET_KEY=changethis
|
SECRET_KEY=changethis
|
||||||
FIRST_SUPERUSER=admin@example.com
|
FIRST_SUPERUSER=admin@example.com
|
||||||
FIRST_SUPERUSER_PASSWORD=changethis
|
FIRST_SUPERUSER_PASSWORD=changethis
|
||||||
|
3
src/.gitignore
vendored
3
src/.gitignore
vendored
@@ -1,3 +0,0 @@
|
|||||||
.vscode
|
|
||||||
.mypy_cache
|
|
||||||
docker-stack.yml
|
|
Reference in New Issue
Block a user