Dans un article précédent (en portugais), j'ai expliqué comment créer un backend GraphQL entièrement fonctionnel en utilisant simplement une image Docker et un fichier de configuration. Tout cela peut être trouvé sur le site Azure . Pour l'instant, parlons de la façon d'automatiser les déploiements créés pour notre hébergement et nos mises à jour côté serveur!
Le but de tout ce projet est de créer un back-end pour que mes futures archives de contenu soient hébergées sur mon site . Cependant, chaque fois que je mets à jour le back-end ou que je change le schéma GraphQL, je dois refaire un déploiement de service complet.
, push Azure. . , , GitHub Azure. , GitHub , ?
GitHub, , Travis Circle, . , .
: + backend-:
, , : docker-compose.yml mongoke.yml, GraphQL.
, , «» — !
GitHub , , , . ? , :
- push
- Azure main service, , Azure/login
- Azure/cli, .
:
- GitHub , , URL- YAML- Mongoke
- URI MongoDB,
-, : , , URL- MongoDB . «» «». , « » . URI MongoDB, MONGODB_URI.
Azure
GitHub Azure, Service Principal. .
Azure CLI. az login, :
az ad sp create-for-rbac --name <SP-name> --role contributor --scopes /subscriptions/<subscriptionID>/resourceGroups/<resourcegroupname> --sdk-auth
ID , az account list : isDefault true. , , : , .
: , , Resource Group. « -», - .
JSON :
{
"clientId": "xxxxxxx",
"clientSecret": "xxxxxxxx",
"subscriptionId": "xxxxxxxx",
...
}
GitHub AZURE_CREDENTIALS:
:
, «» «» « »:
, :
, GitHub Actions — , YAML- /.Github/workflows. , . publish-prod.yml:
:
— GitHub, :
, . , push , , , . , , intellisense:
, . . the official documentation
, , , . env:
, . , . , . , :
Ubuntu, : in the documentation. . — , . , !
, Azure ! Azure/ :
. , :
. , AZURE_CREDENTIALS. , , : $ {{secrets.AZURE_CREDENTIALS}}
.
:
, « », — Azure. run, , . :
, MONGOKE_CONFIG_URL. , SHA- , . , . « URL-».
Workflow Command, GitHub Actions, ::. set-env, . : ::set-env name=<name>::<value>
, :
, ${{env.MONGOKE_CONFIG_URL}} ?v=
native environment variable, GITHUB_SHA. :
, , . MONGOKE_CONFIG_URL, MONGOKE_URL:
:
« » :
«»:
, . , , :
Azure , :
, , URL- :
7 Azure , , , , !
GitHub Actions !
!
. - , dev.to