{{Texto introdutorio}}
Respositório template para CF utilizando
- Deploy com terraform de (Arquivos para GCS, Tabelas BQ e CF)
- Arquivo de configuração dinamico para CF
- Testes unitários
- Teste de integração
- Formatação de código
- Geração de documentação das funcões javascrip
- Criação de release automatica
- Cobertura de código
- Analise de qualidade de código
- Github pages com template do github.dp6.io
Crie seu projeto baseado nesse repositório.
(Passo a passo github)[https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/creating-a-repository-from-a-template]
Primeiro é necessário conectar o repositório do Github com o (coday.com)[https://app.codacy.com/organizations/gh/DP6/repositories] (referência para conexão)[https://docs.codacy.com/organizations/managing-repositories/#adding-a-repository].
Necessário criar a screte CODACY_PROJECT_TOKEN nas configurações do seu repositório no Github em Settings > Secret > New repository Secret
- Substituir o nome
template-js-cloudfunction-with-terraform
pelo nome do novo repositório criado no arquivo package.json - Substituir a chave
{{nome_projeto}}
no arquivo_config.yml
com o nome do projeto em linguagem natural, para ser usado como titulo da página no site. - As variáveis do terraform e e arquivos de exemplo para criação das tabelas no BQ usa a vável
project_name
que pode ser alterado a critério do usuário. - No README.md as chaves
{{token-codacy}}
e{{repo}}
localizada no cabecalho do documento dentro do comentário nas linhas 20-37 deve ser substituida pelo token do projeto no codacy.io e novo nome do repositório.
É recomendo a leitura da documentação oficial do (terraform para Google)[https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/getting_started]
- unit-test: Realiza uma bateria de testes unitários dos arquivos de js presentes na pasta test/unit;
- integration-test: Realiza uma bateria de testes de integração dos arquivos de js presentes na pasta test/integration;
- all-test:Realiza uma bateria de todos os testes presentes na pasta test/;
- test: alias para o comando
all-test
; - lint-md: Submete o código a markdown a uma avaliação do
remark
; - lint-prettier: Submete o código a uma avaliação utilizando o Prettier, de acordo com a configuração descrita no arquivo .prettierrc;,
- lint: Alias para executar todos os lints;
- format: Formata todo o código do projeto, utilizando o Prettier, de acordo com a configuração descrita no arquivo .prettierrc;
- coverage: Análise da cobertura dos testes;
- local: Executa a cloud function localmente utilizando o functions-frameworks;
- coverage: "nyc --reporter=lcov --reporter=cobertura npm run unit-test",
- docs: Gera a documentção do código fonte seguindo o padrão do
jsdoc2md
aplicado no arquivo index.js, a doc é armanezada em docs/index.md",
- BigQuery
- Cloud Storage
- Cloud Function
- Service account
- Google Cloud SDK
- Pacotes zip, unzip e curl
- Criar service Account com as permissões (Storage Object Admin, Cloud Functions Admin, BigQuery Admin e Service Account User)
- Variável GOOGLE_APPLICATION_CREDENTIALS
- Instalar o Terraform
- Habilitar os produtos no GCP Cloud Function, BigQuery, Cloud Build API, Cloud Resource Manager API, BigQuery Data Transfer API e Cloud Storage, para uso do BigQuery é necessário ter um billing ativo
- Importante o usuário que executar o script do terraform precisa ter a permissão de owner no projeto do GCP.
Observação: Utilizando o ambiente no Google Cloud Shell não é necessário fazer os 1, 2, 4 e 5
Clone o projeto do github para sua máquina local ou Cloud Shell
git clone https://github.com/DP6/{{repo}}.git
Para fazer deploy no GCP usando o Terraform, o utilize o shell script terraform_deploy
cd {{repo}}
sh terraform_deploy.sh
Pull requests são bem-vindos! Nós vamos adorar ajuda para evoluir esse modulo. Sinta-se livre para navegar por issues abertas buscando por algo que possa fazer. Caso tenha uma nova feature ou bug, por favor abra uma nova issue para ser acompanhada pelo nosso time.
Só serão aceitas contribuições que estiverem seguindo os seguintes requisitos:
DP6 Koopa-troopa Team
e-mail: koopas@dp6.com.br