am_dot_com

SW 2022-03-18

Mar 18th, 2022 (edited)
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.16 KB | None | 0 0
  1. name: Python Workflow with GH Actions
  2. on: [push]
  3. jobs:
  4. build:
  5. runs-on: ubuntu-latest
  6. steps:
  7. - uses: actions/checkout@v2
  8. - name: Set up Python 3.9
  9. uses: actions/setup-python@v1
  10. with:
  11. python-version: 3.9
  12. - name: Install dependencies
  13. run: |
  14. make install
  15. - name: Lint with Pylint
  16. run: |
  17. make lint
  18. - name: Test with Pytest
  19. run: |
  20. make test
  21. - name: Format code with Python black
  22. run: |
  23. make format
  24.  
  25.  
  26.  
  27. ********************
  28. CI = Continuous Integration
  29. Uma técnica para automação do fundamental do processo de desenvolvimento: garantia de requisitos de funcionamento, verificação sintática e testes.
  30. "Automação de testes"
  31. CI cloud-based
  32. multi-cloud CI
  33. provider cloud = Cloud9 @ EC2 @ AWS
  34. "build server" = GitHub Actions
  35.  
  36. CD = Continuous Delivery
  37. Pretende garantir que o código está num estado utilizável (tipicamente o ramo principal, assumindo que essa produção se destina aos utilizadores finais).
  38. Mas pode haver CD para outros ramos.
  39. CD = produção@CI ---> build env ---> resultado ---> deployment
  40.  
  41. AWS ---> Cloud Shell (Bash+Editor)
  42. GCP ---> Cloud Shell (Bash+Editor) ---> gcloud app deploy
  43. Azure ---> Cloud Shell (Bash+Editor)
  44.  
  45. mkdir <nome da pasta>
  46. rmdir <nome da pasta> --ignore-fail-on-non-empty
  47. ls -l -a -h
  48. ls -lah
  49.  
  50. assert(expressão-booleana)
  51. se a exp é False, causa uma runtime exception
  52.  
  53. Para testar diretamente em ambientes bash podemos fazer
  54.  
  55. python3 -m pytest <nome do ficheiro>
  56.  
  57. a utilização de assert é fundamental nalguns padrões de teste.
  58.  
  59. push ---> upload
  60. pull --> fetch + merge --> download
  61.  
  62. git push <repo por defeito> <ramo corrente>
  63. git push origin master
  64.  
  65. #move/rename master to main (Azure)
  66. git branch -M main master
  67.  
  68. python3 -m venv venv
  69.  
  70. make install
  71.  
  72. Automatizar: requirements, linting, testing, via um "build server" noutra Coud.
  73. Isso significa fazer "multi-cloud Continuous Integration".
  74.  
  75. Vamos usar o "build server" "GitHub Actions".
  76. Este programa configura-se por um ficheiro .yaml (Yet Another Markup Language)
  77.  
  78.  
  79. my_wf_for_mc_ci = "my work"
Add Comment
Please, Sign In to add comment