CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular
Amin'ity lahatsoratra ity dia hizara ny traikefako amin'ny fametrahana CI/CD amin'ny fampiasana ny Plesk Control Panel sy Github Actions aho. Androany isika dia hianatra ny fomba fametrahana tetikasa tsotra miaraka amin'ny anarana tsy sarotra "Helloworld". Izy io dia voasoratra ao amin'ny rafitra Flask Python, miaraka amin'ny mpiasa Selery sy ny lohany Angular 8.

Rohy mankany amin'ny repository: backend, ny tendrony aloha.

Ao amin'ny tapany voalohany amin'ny lahatsoratra dia hojerentsika ny tetikasantsika sy ny ampahany aminy. Amin'ny faharoa, hojerentsika ny fomba fametrahana Plesk sy fametrahana ireo fanitarana sy singa ilaina (DB, RabbitMQ, Redis, Docker, sns.).

Amin'ny ampahany fahatelo dia ho hitantsika amin'ny farany ny fomba fametrahana fantsona amin'ny fametrahana ny tetikasantsika amin'ny mpizara amin'ny tontolo dev sy prod. Ary avy eo dia hanomboka ny tranokala amin'ny mpizara izahay.

Ary eny, hadinoko ny nampahafantatra ny tenako. Oleg Borzov no anarako, mpamorona feno stack ao amin'ny ekipa CRM ho an'ny tompon'andraikitra amin'ny fampindramam-bola ao amin'ny Domclick aho.

Fandinihana ny tetikasa

Voalohany, andeha hojerentsika ireo tahiry tetikasa roa - backend sy front - ary mandehana amin'ny code.

Backend: Flask+Seleria

Ho an'ny ampahany aoriana dia naka andiana izay malaza be amin'ny mpamorona Python aho: ny rafitra Flask (ho an'ny API) sy Selery (ho an'ny filaharana asa). SQLAchemy dia ampiasaina ho ORM. Alembic dia ampiasaina amin'ny fifindra-monina. Ho an'ny fanamarinana JSON amin'ny tànana - Marshmallow.

В repository misy rakitra Readme.md misy famaritana amin'ny antsipiriany momba ny rafitra sy ny torolàlana amin'ny fampandehanana ny tetikasa.

Web Part API tena tsotra, ahitana penina 6:

  • /ping - hanamarina ny fisiany;
  • mitantana ny fisoratana anarana, ny fanomezan-dàlana, ny fanafoanana ny fahazoan-dàlana ary ny fahazoana mpampiasa nahazo alalana;
  • tantana mailaka izay mametraka asa ao amin'ny filaharana Selery.

Ampahany seleria Mbola tsotra kokoa izany, tsy misy afa-tsy olana iray send_mail_task.

Ao anaty folder /conf misy subfolders roa:

  • docker miaraka amin'ny Dockerfiles roa (base.dockerfile hanorina sary fototra tsy dia miova ary Dockerfile ho an'ny fivoriambe lehibe);
  • .env_files - miaraka amin'ny rakitra misy fari-piainan'ny tontolo iainana ho an'ny tontolo samihafa.

Misy rakitra docker-compose efatra ao amin'ny fototry ny tetikasa:

  • docker-compose.local.db.yml manangana tahiry eo an-toerana ho an'ny fampandrosoana;
  • docker-compose.local.workers.yml ho an'ny fananganana mpiasa eo an-toerana, angon-drakitra, Redis ary RabbitMQ;
  • docker-compose.test.yml ho an'ny fanaovana fitiliana mandritra ny fametrahana;
  • docker-compose.yml ho an'ny fametrahana.

Ary ny lahatahiry farany mahaliana antsika - .ci-cd. Misy script shell ho an'ny fametrahana:

  • deploy.sh - fanombohana ny fifindra-monina sy ny fametrahana. Mihazakazaka amin'ny mpizara aorian'ny fananganana sy fanaovana fitsapana amin'ny Github Actions;
  • rollback.sh - famerenana ny kaontenera amin'ny dikan-teny teo aloha tamin'ny fivoriambe;
  • curl_tg.sh - fandefasana fampandrenesana fandefasana amin'ny Telegram.

Frontend in angular

Repository misy eo anoloana tsotra kokoa noho ny an'i Beck. Ny pejy voalohany dia misy pejy telo:

  • Pejy lehibe misy endrika fandefasana mailaka sy bokotra fivoahana.
  • Pejy fidirana.
  • Pejy fisoratana anarana.

Ny pejy fototra dia toa ascetic:

CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular
Misy rakitra roa eo amin'ny fakany Dockerfile и docker-compose.yml, ary koa ny fampirimana mahazatra .ci-cd miaraka amin'ny sora-baventy kely kokoa noho ny ao amin'ny trano fitehirizam-bokatra (escrits nesorina ho an'ny fitsapana).

Manomboka tetikasa ao Plesk

Andao hanomboka amin'ny fananganana Plesk ary mamorona famandrihana ho an'ny tranokalanay.

Fametrahana fanitarana

Ao amin'ny Plesk, mila fanitarana efatra isika:

  • Docker ho an'ny fitantanana sy fanehoana an-tsary ny toetry ny kaontenera ao amin'ny tontonana admin Plesk;
  • Git mandrindra ny dingana fametrahana amin'ny mpizara;
  • Let's Encrypt hamokatra (sy fanavaozana ho azy) mari-pankasitrahana TLS maimaim-poana;
  • Firewall handrindra ny sivana ny fifamoivoizana miditra.

Azonao atao ny mametraka azy ireo amin'ny alàlan'ny tontonana admin Plesk ao amin'ny fizarana Extensions:

CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular
Tsy handinika ny fanamafisana amin'ny antsipiriany amin'ny fanitarana izahay; ho an'ny tanjonay demo dia mety ny fikandrana default.

Mamorona famandrihana sy tranokala

Manaraka, mila mamorona famandrihana ho an'ny tranokalanay helloworld.ru ary ampio ny subdomain dev.helloworld.ru ao.

  1. Mamorona famandrihana ho an'ny sehatra helloworld.ru ary ambarao ny tenimiafina fidirana ho an'ny mpampiasa rafitra:

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular
    Jereo ny boaty eo amin'ny faran'ny pejy Arovy ny sehatra amin'ny Let's Encryptraha te hanangana HTTPS ho an'ny tranokala izahay:

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

  2. Manaraka, amin'ity famandrihana ity, mamorona subdomain dev.helloworld.ru (izay ahafahanao mamoaka taratasy fanamarinana TLS maimaim-poana ihany koa):

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

Fametrahana ireo singa mpizara

Manana mpizara izahay OS Debian Mihenjana 9.12 ary napetraka ny tontonana fanaraha-maso Plesk Obsidian 18.0.27.

Mila mametraka sy manitsy ny tetikasantsika isika:

  • PostgreSQL (amin'ny tranga misy antsika dia hisy mpizara iray misy tahiry roa ho an'ny tontolo dev sy prod).
  • RabbitMQ (zavatra mitovy, ohatra iray misy vhosts samihafa ho an'ny tontolo iainana).
  • Ohatra roa Redis (ho an'ny tontolo dev sy prod).
  • Docker Registry (ho an'ny fitahirizana ny sary Docker voaangona eo an-toerana).
  • UI ho an'ny rejisitra Docker.

PostgreSQL

Plesk dia efa tonga miaraka amin'ny PostgreSQL DBMS, fa tsy ny dikan-teny farany (tamin'ny fotoana nanoratana ny Plesk Obsidian nanohana Postgres versions 8.4–10.8). Mila ny kinova farany indrindra ho an'ny fampiharanay izahay (12.3 amin'ny fotoana anoratana), ka hametraka azy amin'ny tanana izahay.

Подробных инструкций по установке Postgres на Debian в сети полно (ohatra), noho izany dia tsy hamariparitra azy ireo amin'ny antsipiriany aho, hanome ny baiko fotsiny aho:

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib

Raha jerena fa ny PostgreSQL dia manana toe-javatra mahazatra mahazatra, dia ilaina ny manitsy ny fanitsiana. Hanampy antsika izany fanaovana kajy: mila miditra ny paramètre mpizara ianao ary manolo ny fikandrana ao amin'ny rakitra /etc/postgresql/12/main/postgresql.confamin'ireo atolotra. Marihina eto fa ny kajy toy izany dia tsy bala majika, ary ny fototra dia tokony amboarina tsara kokoa, mifototra amin'ny fitaovanao, ny fampiharana ary ny fahasarotan'ny fanontanianao. Fa izany dia ampy hanombohana.

Ho fanampin'ny fanovana naroson'ny kajy, dia miova koa izahay postgresql.confny port default 5432 mankany amin'ny iray hafa (amin'ny ohatra - 53983).

Aorian'ny fanovana ny rakitra fikirakirana, avereno indray ny postgresql-server miaraka amin'ny baiko:

service postgresql restart

Nametraka sy nanamboatra PostgreSQL izahay. Andeha isika hamorona database, mpampiasa ho an'ny dev- sy prod-environment, ary manome zo ny mpampiasa hitantana ny angona:

$ su - postgres
postgres:~$ create database hw_dev_db_name;
CREATE DATABASE
postgres:~$ create user hw_dev_db_user with password 'hw_dev_db_password';
CREATE ROLE
postgres:~$ grant ALL privileges ON database hw_dev_db_name to hw_dev_db_user;
GRANT
postgres:~$ create database hw_prod_db_name;
CREATE DATABASE
postgres:~$ create user hw_prod_db_user with password 'hw_prod_db_password';
CREATE ROLE
postgres:~$ grant ALL privileges ON database hw_prod_db_name to hw_prod_db_user;
GRANT

Ny bitro MQ

Перейдем к установке RabbitMQ — брокера сообщений для Celery. Ставится он на Debian достаточно просто:

wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i erlang-solutions_1.0_all.deb

sudo apt-get update
sudo apt-get install erlang erlang-nox

sudo add-apt-repository 'deb http://www.rabbitmq.com/debian/ testing main'
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

sudo apt-get update
sudo apt-get install rabbitmq-server

Aorian'ny fametrahana dia mila mamorona isika vhosts, mpampiasa ary omeo ny zo ilaina:

sudo rabbitmqctl add_user hw_dev_amqp_user hw_dev_amqp_password 
sudo rabbitmqctl set_user_tags hw_dev_amqp_user administrator
sudo rabbitmqctl add_vhost hw_dev_vhost
sudo rabbitmqctl set_permissions -p hw_dev_vhost hw_dev_amqp_user ".*" ".*" ".*"

sudo rabbitmqctl add_user hw_prod_amqp_user hw_prod_amqp_password 
sudo rabbitmqctl set_user_tags hw_prod_amqp_user administrator
sudo rabbitmqctl add_vhost hw_prod_vhost
sudo rabbitmqctl set_permissions -p hw_prod_vhost hw_prod_amqp_user ".*" ".*" ".*"

Redis

Andeha isika hametraka sy amboary ny singa farany ho an'ny fampiharana - Redis. Izy io dia ampiasaina ho backend hitahiry ny vokatry ny asa Selery.

Hanangana kaontenera Docker roa miaraka amin'i Redis ho an'ny tontolo dev sy prod mampiasa ny fanitarana Docker ho an'ny Plesk.

  1. Mandehana any amin'ny Plesk, mankanesa any amin'ny fizarana Extensions, tadiavo ny fanitarana Docker ary apetraho (mila ny dikan-teny maimaim-poana izahay):

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

  2. Mandehana any amin'ny fanitarana napetraka, tadiavo ny sary amin'ny alàlan'ny fikarohana redis bitnami ary apetraho ny kinova farany:

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

  3. Mandehana ao amin'ny fitoeran-javatra alaina ary amboary ny fanitsiana: mamaritra ny seranana, ny haben'ny RAM natokana indrindra, ny tenimiafina ao amin'ny fari-piainan'ny tontolo iainana, ary apetraho ny volume:

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

  4. Manao dingana 2-3 ho an'ny container prod izahay, amin'ny toe-javatra dia manova ny mari-pamantarana fotsiny izahay: seranan-tsambo, tenimiafina, haben'ny RAM ary lalana mankany amin'ny lahatahiry volume amin'ny server:

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

Docker Registry

Ho fanampin'ny serivisy fototra, tsara ny mametraka ny tahirin-tsarin'ny Docker anao manokana amin'ny mpizara. Soa ihany fa lafo be izao ny habaka mpizara (azo antoka fa mora kokoa noho ny famandrihana DockerHub), ary tena tsotra ny fizotran'ny fananganana tahiry manokana.

Te hanana:

Mba hanaovana izany:

  1. Andao hamorona subdomains roa ao amin'ny Plesk amin'ny famandrihanay: docker.helloworld.ru sy docker-ui.helloworld.ru, ary amboary ny mari-pankasitrahana Let's Encrypt ho azy ireo.
  2. Ampio ao amin'ny docker.helloworld.ru ny rakitra subdomain docker-compose.yml miaraka amin'ny atiny toy izao:
    version: "3"
    
    services:
      docker-registry:
        image: "registry:2"
        restart: always
        ports:
          - "53985:5000"
        environment:
          REGISTRY_AUTH: htpasswd
          REGISTRY_AUTH_HTPASSWD_REALM: basic-realm
          REGISTRY_AUTH_HTPASSWD_PATH: /auth/.htpasswd
          REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data
        volumes:
          - ./.docker-registry.htpasswd:/auth/.htpasswd
          - ./data:/data
    
      docker-registry-ui:
        image: konradkleine/docker-registry-frontend:v2
        restart: always
        ports:
          - "53986:80"
        environment:
          VIRTUAL_HOST: '*, https://*'
          ENV_DOCKER_REGISTRY_HOST: 'docker-registry'
          ENV_DOCKER_REGISTRY_PORT: 5000
        links:
          - 'docker-registry'
    

  3. Eo ambanin'ny SSH dia hamorona rakitra .htpasswd ho an'ny fanomezan-dàlana fototra ao amin'ny tahiry Docker izahay:
    htpasswd -bBc .htpasswd hw_docker_admin hw_docker_password
  4. Manangona sy manangana kaontenera:
    docker-compose up -d
  5. Ary mila mamindra an'i Nginx mankany amin'ny fitoeranay izahay. Azo atao amin'ny Plesk izany.

Mila atao ireto dingana manaraka ireto ho an'ny docker.helloworld.ru sy docker-ui.helloworld.ru subdomains:

fizarana DevTools mankany amin'ny tranokalanay Fitsipika Docker Proxy:

CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular
Ary ampio fitsipika amin'ny proxy ny fifamoivoizana miditra ao amin'ny fitoeranay:

CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

  1. Manamarina izahay fa afaka miditra ao amin'ny fitoeranay avy amin'ny milina eo an-toerana izahay:
    $ docker login docker.helloworld.ru -u hw_docker_admin -p hw_docker_password
    WARNING! Using --password via the CLI is insecure. Use --password-stdin.
    Login Succeeded
  2. Andeha hojerentsika koa ny fiasan'ny docker-ui.helloworld.ru subdomain:

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular
    Rehefa tsindrio ny Browse repository, ny navigateur dia hampiseho varavarankely fanomezan-dàlana izay ilainao hampidirana ny solon'anarana sy ny tenimiafina ho an'ny tahiry. Aorian'izay dia hafindra any amin'ny pejy misy lisitr'ireo trano fitehirizam-bokatra isika (amin'izao fotoana izao dia ho foana ho anao izany):

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

Manokatra seranana ao amin'ny Plesk Firewall

Aorian'ny fametrahana sy fametrahana ireo singa dia mila manokatra ny seranana isika mba hahafahan'ireo singa azo idirana amin'ny container Docker sy ny tambajotra ivelany.

Andao hojerentsika ny fomba hanaovana izany amin'ny alàlan'ny fanitarana Firewall ho an'ny Plesk izay napetrakay teo aloha.

  1. Mandeha Tools & Settings > Settings > Firewall:
    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular
  2. Mandeha Ovao ny fitsipiky ny Plesk Firewall > Ampio fitsipika manokana ary sokafy ireto port TCP manaraka ireto ho an'ny subnet Docker (172.0.0.0 / 8):
    RabbitMQ: 1883, 4369, 5671-5672, 25672, 61613-61614
    Averina: 32785, 32786

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

  3. Hanampy fitsipika ihany koa izahay izay hanokatra ny seranan-tsambo PostgreSQL sy ny tontolon'ny fitantanana RabbitMQ amin'ny tontolo ivelany:

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

  4. Ampiharo ny fitsipika mampiasa ny bokotra Apply Changes:

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

Mametraka CI/CD ao amin'ny Github Actions

Andeha isika hidina any amin'ny ampahany mahaliana indrindra - ny fametrahana fantsona fampidirana mitohy sy ny fandefasana ny tetikasantsika amin'ny mpizara.

Ity pipeline ity dia ahitana fizarana roa:

  • manangana sary sy manao fitsapana (ho an'ny backend) - eo amin'ny lafiny Github;
  • mihazakazaka fifindra-monina (ho an'ny backend) sy ny fametrahana fitoeran-javatra - amin'ny mpizara.

Hiverina any amin'ny Plesk

Andeha hojerentsika aloha ny teboka faharoa (fa miankina amin'io ny voalohany).

Hamboarina ny fizotran'ny fametrahana amin'ny alàlan'ny fanitarana Git ho an'ny Plesk.

Andeha hojerentsika ohatra miaraka amin'ny tontolo Prod ho an'ny tahiry Backend.

  1. Mandeha amin'ny famandrihana ny tranokalanay Helloworld izahay ary mandehana any amin'ny fizarana Git:

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

  2. Apetaho ao amin'ny saha "Remote Git repository" ny rohy mankany amin'ny tahiry Github ary ovay ny lahatahiry default httpdocs amin'ny hafa (oh. /httpdocs/hw_back):

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

  3. Adikao ny fanalahidy SSH Public avy amin'ny dingana teo aloha ary hametraka ao amin'ny fikandrana Github izy io.
  4. Tsindrio OK eo amin'ny efijery amin'ny dingana 2, aorian'izay dia halefa any amin'ny pejy fitahirizana ao Plesk isika. Ankehitriny dia mila manamboatra ny tahiry isika mba havaozina amin'ny commits amin'ny sampana master. Mba hanaovana izany, mandehana any Toeram-pivarotana ary tehirizo ny sandany Webhook URL (mila izany isika any aoriana rehefa manangana Github Actions):

    CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

  5. Ao amin'ny saha Actions eo amin'ny efijery avy amin'ny paragrafy teo aloha, ampidiro ny script hanombohana ny fametrahana:
    cd {REPOSITORY_ABSOLUTE_PATH}
    .ci-cd/deploy.sh {ENV} {DOCKER_REGISTRY_HOST} {DOCKER_USER} {DOCKER_PASSWORD} {TG_BOT_TOKEN} {TG_CHAT_ID} 

    izay:

    {REPOSITORY_ABSOLUTE_PATH} - lalana mankany amin'ny lahatahiry prod amin'ny tahiry backend amin'ny mpizara;
    {ENV} - tontolo iainana (dev / prod), amin'ny tranga misy antsika prod;
    {DOCKER_REGISTRY_HOST} - ny mpampiantrano ny fitehirizana docker
    {TG_BOT_TOKEN} - famantarana bot Telegram;
    {TG_CHAT_ID} - ID amin'ny chat/channel handefasana fampandrenesana.

    Ohatra amin'ny script:

    cd /var/www/vhosts/helloworld.ru/httpdocs/hw_back/
    .ci-cd/deploy.sh dev docker.helloworld.ru docker_user docker_password 12345678:AAbcdEfghCH1vGbCasdfSAs0K5PALDsaw -1001234567890
  6. Manampia mpampiasa avy amin'ny famandrihanay amin'ny vondrona Docker (mba ahafahan'izy ireo mitantana container):
    sudo usermod -aG docker helloworld_admin

Ny tontolo dev ho an'ny tahiry backend sy ny frontend dia napetraka amin'ny fomba mitovy.

Fametrahana fantsona ao amin'ny Github Actions

Andao hiroso amin'ny fametrahana ny ampahany voalohany amin'ny fantsona CI/CD ao amin'ny Github Actions.

Backend

Ny pipeline dia voalaza ao amin'ny deploy.yml rakitra.

Fa alohan'ny hamakiana azy dia andao fenoy ny fari-piadidiana miafina ilaintsika ao amin'ny Github. Mba hanaovana izany, mandehana any Settings -> Tsiambaratelo:

  • DOCKER_REGISTRY - ny mpampiantrano ny tahiry Docker (docker.helloworld.ru);
  • DOCKER_LOGIN - midira ao amin'ny tahiry Docker;
  • DOCKER_PASSWORD - tenimiafina ho azy;
  • DEPLOY_HOST - mpampiantrano izay misy ny tontonana admin Plesk (ohatra: helloworld.ru: 8443 na 123.4.56.78:8443);
  • DEPLOY_BACK_PROD_TOKEN - mari-pamantarana amin'ny fametrahana ny prod-repository amin'ny server (nahazo izany izahay tao amin'ny Deployment in Plesk p. 4);
  • DEPLOY_BACK_DEV_TOKEN - mari-pamantarana ho an'ny fametrahana amin'ny tahiry dev amin'ny mpizara.

Tsotra ny fizotran'ny fametrahana ary misy dingana telo lehibe:

  • fananganana sy famoahana ny sary ao amin'ny fitahirizanay;
  • manao fitsapana ao anaty fitoeran-javatra mifototra amin'ny sary vao namboarina;
  • deployment amin'ny tontolo tiana miankina amin'ny sampana (dev/master).

frontend

Ny rakitra deploy.yml ho an'ny tahiry eo aloha tsy misy hafa amin'ny an'i Bekov. Mandalo ny dingana amin'ny fanaovana andrana ary manova ny anaran'ireo famantarana hapetraka. Ny tsiambaratelo ho an'ny tahiry eo anoloana, raha ny marina, dia mila fenoina misaraka.

Fametrahana tranokala

Fifamoivoizana amin'ny alàlan'ny Nginx

Eny, tonga amin'ny farany isika. Ny hany sisa tavela dia ny manamboatra proxy ny fifamoivoizana miditra sy mivoaka mankany amin'ny fitoeranay amin'ny Nginx. Efa nandrakotra ity dingana ity izahay tamin'ny dingana 5 amin'ny fametrahana ny Docker Registry. Ny zavatra mitovy dia mila averina amin'ny faritra aoriana sy eo anoloana amin'ny tontolo dev sy prod.

Hanome pikantsarin'ny fandrindrana aho.

Backend

CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular

frontend

CI/CD ao amin'ny Github Actions ho an'ny tetikasa Flask+Angular
Ва. Ny URL rehetra dia hafindra amin'ny fitoeran'entana eo anoloana, afa-tsy ireo manomboka amin'ny /api/ - izy ireo dia ho proxied amin'ny fitoeran-javatra aoriana (so ao amin'ny kaontenera aoriana, ny mpitantana rehetra dia tsy maintsy manomboka amin'ny /api/).

vokatra

Ankehitriny ny tranokalanay dia tokony ho hita ao amin'ny helloworld.ru sy dev.helloworld.ru (prod- sy dev-environments, tsirairay avy).

Amin'ny fitambarany, nianatra ny fomba hanomanana fampiharana tsotra ao amin'ny Flask sy Angular izahay ary nanangana fantsona ao amin'ny Github Actions mba hanodina azy amin'ny mpizara mihazakazaka Plesk.

Hanova ny rohy mankany amin'ny tahiry miaraka amin'ny code aho: backend, ny tendrony aloha.

Source: www.habr.com

Mividiana fampiantranoana azo antoka ho an'ny tranokala misy fiarovana DDoS, mpizara VPS VDS 🔥 Mividiana fampiantranoana tranonkala azo antoka miaraka amin'ny fiarovana DDoS, mpizara VPS VDS | ProHoster