Coder Social home page Coder Social logo

2023-s1-ci's Introduction

Projeto para suporte às aulas de integração contínua

Problema

Esse repositório implementa uma API HTTP para validar o texto de uma senha de acordo com alguns critérios. Entretanto, o código está incompleto e possui bugs, o seu trabalho é consertá-lo, completá-lo e rodar o pipeline.

Este repositório foi desenvolvido utilizando o gerenciador de pacotes poetry, mas você não precisa dele. Basta utilizar o arquivo simple_web_api/requirements.txt

Os critérios para senhas válidas são:

  1. Mínimo de 8 caracteres
  2. Pelo menos 1 número
  3. Pelo menos 1 caractere especial
  4. Pelo menos 1 letra maiúscula
  5. Pelo menos 1 letra minúscula
  6. Caracteres especiais não podem ser / ^ ~

Tarefas

0. Faça o fork do projeto no github;

1. Faça o clone do seu fork na sua máquina;

2. Verifique que os testes não cobrem a especificação e adicione testes e implementação adequados;

3. Rode o seu pipeline com sucesso.

Instalando o ambiente de desenvolvimento

Development environment dependencies

Dependencies Tested Version Minimum Version Url
Python 3.11 3.7.5 link
Poetry (optional) 1.2.0 1.0.0 link

clone o seu fork

$ git clone [email protected]:...XXXX.../2023-s1-ci.git

Instalando as dependências

$ cd 2023-s1-ci/
$ python3 -m venv .venv
$ source .venv/bin/activate
$ cd simple_web_app
$ pip install -r requirements.txt

Rodando a aplicação web

$ cd 2023-s1-ci/simple_web_app
$ uvicorn main:app --reload

Rodando os testes

$ cd 2023-s1-ci
$ pytest

Apêndice

Publicar imagens docker

  1. Criar uma conta no docker hub https://hub.docker.com/
  2. Criar access token no docker hub
  3. Criar variável mascarada docker_hub_token com este access_token no github
  4. Criar variável docker_hub_login com o seu espaço no docker hub no github
  5. Rodar os stages de build e release do pipeline

Fazer deploy da aplicação no PaaS chamado deta

  1. Criar uma conta no deta https://www.deta.sh/
  2. Instalar cliente do deta e configurar projeto
$ curl -fsSL https://get.deta.dev/cli.sh | sh   # instalar cliente deta
$ source ~/.bashrc                              # disponibilizar comando
$ deta login                                    # logar na conta já criada
$ cd 2023-s1-ci                                 # entrar na raiz do projeto
$ deta new —python simple_web_app               # criar projeto no cloud deta
$ cd simple_web_app                             # entrar na pasta com código python
$ deta deploy                                   # realizar deploy
$ deta visor enable                             # habilitar logs no cloud deta
  1. Gerar access token em settings no site deta
  2. Criar variável mascarada DETA_ACCESS_TOKEN no github
  3. Commitar modificações no arquivo simple_web_app/.deta/prog_info
  4. Criar variável PRODUCTION_URL no github com a URL do serviço na deta
  5. Seguir o fluxo de gerência de configuração até a branch main
  6. Disparar o job de deploy manualmente ao final da pipeline na main

rodando do docker

$ cd 2023-s1-ci
$ docker build -t simple_web_app .
$ docker run --rm -p 8000:80 simple_web_app

2023-s1-ci's People

Contributors

andreportela avatar brenofranca83 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.