🔥 Clean up old files no longer relevant (#608)

This commit is contained in:
Sebastián Ramírez
2024-02-25 17:50:12 +01:00
committed by GitHub
parent 72f835a6b4
commit a065f9c9e8
13 changed files with 2 additions and 225 deletions

View File

@@ -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
View File

@@ -1,5 +1,3 @@
.vscode .vscode
testing-project
.mypy_cache .mypy_cache
poetry.lock poetry.lock
dev-link/

View File

@@ -1,12 +0,0 @@
sudo: required
language: python
install:
- pip install cookiecutter
services:
- docker
script:
- bash ./scripts/test.sh

View File

@@ -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.

View File

@@ -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.

View File

@@ -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\}\}/

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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))

View File

@@ -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 ../

View File

@@ -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
View File

@@ -1,3 +0,0 @@
.vscode
.mypy_cache
docker-stack.yml