Korzystamy z Google Cloud Platform (GCP) udostępnionego przez Operatora Chmury Krajowej.
Stworzenie nowego projektu GCP składa się z następnujących kroków:
-
Stworzenie projektu na platformie Google Cloud
-
Na stronie projektu console.cloud.google.com należy wykonać następujące ustawienia:
Instalacja oprogramowania serwera wymaga narzędzi Terraform oraz gcloud. Przed przystąpieniem do instalacji należy wykonać następujące kroki:
-
Zainstalować narzędzie
gcloud
zgodnie z instrukcją na cloud.google.com/sdk/install -
Zainstalować narzędzie
terraform
zgodnie z instrukcją na learn.hashicorp.com/terraform/getting-started/install
Dodatkowo możesz lokalnie zainstalować pre-commit przez pip install pre-commit && pre-commit install
.
Pomoże on upewnić się o poprawności składniowej, formatowaniu kodu i tym podobnych przed zachowaniem zmian w repozytorium.
-
Używając narzędzia
gcloud
Należy zalogować się do GCP przy użyciu strony logowana lub Service Account z odpowiednimi uprawnieniami:# strona logowania gcloud auth application-default login # service account gcloud auth activate-service-account --key-file=<credentials.json>
-
Ustawienie odpowiedniego projektu jako aktywnego:
gcloud config set project <project_id>
- Pomocnicze komendy
# wylistowanie wszystkich projektów gcloud projects list # wyświetlenie aktywnego projektu gcloud config list project
- Pomocnicze komendy
-
Pobranie źródeł ProteGO:
git clone [email protected]:ProteGO-app/backend.git
-
Ustawienie zmiennych środowiskowych.
STAGE
-DEVELOPMENT
lubPRODUCTION
to jedyne dopuszczalne wartości. Zmienna ta mówi czy jest do środowisko produkcyjne (wysyłanie SMSów jest aktywne) czy deweloperskie.SMS_API_TOKEN
- Token do bramki SMS. Zmienna ta jest wymagana zawsze wymagana (dla środowiska deweloperskiego wartość ta nie musi być poprawna).
export STAGE=DEVELOPMENT export SMS_API_TOKEN=1234
-
Uruchomienie skryptu tworzącego środowisko:
bash scripts/create.sh
Na Google Cloud Store będzie dodaktowo stworzony (jeśli nie istnieje) bucket do przechowywania konfiguracji narzędzia terraform. Nazwa bucketu skłąda się z ID projektu i końcówki "-tfstate" ("PROJECT_ID-tfstate"). Przechowywanie konfiguracji w bucket jest wygodne ze względu na możliwość bezkonfliktowego używania narzędzia przez większą ilość osób.
Aby wyczyścić środowisko należy wyskonać następącujące komendy:
- Usunięcie zasobów zarządzanych przez
terraform
:
bash scripts/teardown.sh
- Opcjonalnie możesz usunąć bucket zawierający konfigurację
terraform
bash scripts/teardown_tfstate_bucket.sh
In order to run test you need to set environment variables:
STAGE
- DEVELOPMENT or PRODUCTION
SEND_SMS_NUMBER
- 9 digits.
GOOGLE_APPLICATION_CREDENTIALS
- path to account credentials file
Install requirements from tests/requirements.txt
Run:
gcloud auth login
gcloud config set project <project id>
python -m unittest