No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

3D
9H
29M
50S

Desarrollo de workflow para testing

19/24
Recursos

Aportes 5

Preguntas 7

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

about-billing-for-github-actions

Les comparto los costos y lo que incluye en plan free de github actions 😃

Bueno, luego de un dia de arduo trabajo, logre emular el proceso usando AWS.
Esta dificil contextualizar un orden adecuado de como lo logre, pero lo logre y ya esta.

Iremos como jack el distripador, por partes.

Primero quisiera anexarles mi archivo .yaml, el mismo tiene algunas variantes, ya que yo no use algunas cosas usadas en el curso, el que haya visto mis comentarios en la parte de aportes sabra que es asi, al final mi archivo quedo asi:

name: Testing API
on:
  workflow_dispatch:
  push:
    branches:
      - workflow_testing_api
  pull_request:
    branches:
      - workflow_testing_api
permissions:
  id-token: write # need this for OIDC  
  contents: read
jobs:
  testing-api:
    name: Testing-api in Github Actions
    runs-on: ubuntu-latest
    # These permissions are needed to interact with GitHub's OIDC Token endpoint.
    steps:
      - name: Checkout the repo
        uses: actions/[email protected]
      - name: Set AWS credentials
        uses: aws-actions/[email protected]
        with:
          role-session-name: aws_testing_session
          role-to-assume: ${{ secrets.AWS_IAM_ROLE }}
          aws-region: ${{ secrets.AWS_REGION }}
      - name: Creating and activating pipenv
        run: |
          pip install pipenv
          pipenv install
          pipenv run python
      - name: Installing dependencies
        run: |
          pip install dvc[s3]
          pip install -r requirements_test.txt
      - name: Test API
        run: |
          dvc pull model/model.pkl -r model-tracker
          pytest tests/tests_api.py

Debo hacer ciertas acotaciones, cosas como usar el dependabot en secredos de github, ya no se puede, arroja mil errores, de eeso se pueden enterar aca:
https://github.blog/changelog/2021-02-19-github-actions-workflows-triggered-by-dependabot-prs-will-run-with-read-only-permissions/

Estuve realizando el curso apenas ahora. A la fecha actions/[email protected] da problemas. Es necesario cambiarlo por actions/[email protected]

Para AWS al parecer el proceso que realizamos se emula con IAM role, no pude realizarlo ya que no consegui en la web como emularlo y no me atrevi por tener la tarjeta sociada a AWS, si vi que al parecer se le puede dar control acceso del s3 entre otros parametros. Por si alguien lo realiza a corto plazo dejo este checkpoints.

Llevo 3 dias con este error y no doy con el chiste

Local funcionan los tests pero usando github actions falla 😦

__________________________ ERROR collecting tests.py ___________________________
tests.py:2: in <module>
    from api.main import app
api/main.py:3: in <module>
    from .app.views import get_prediction
api/app/views.py:4: in <module>
    model = get_model()
api/app/utils.py:11: in get_model
    model = joblib.load(BytesIO(model_file.read()))
../../../.local/lib/python3.8/site-packages/joblib/numpy_pickle.py:577: in load
    obj = _unpickle(fobj)
../../../.local/lib/python3.8/site-packages/joblib/numpy_pickle.py:506: in _unpickle
    obj = unpickler.load()
/usr/lib/python3.8/pickle.py:1212: in load
    dispatch[key[0]](self)
/usr/lib/python3.8/pickle.py:1505: in load_obj
    args = self.pop_mark()
/usr/lib/python3.8/pickle.py:1219: in pop_mark
    self.stack = self.metastack.pop()
E   IndexError: pop from empty list
=========================== short test summary info ============================
ERROR tests.py - IndexError: pop from empty list
!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
=============================== 1 error in 1.30s ===============================
Error: Process completed with exit code 2.