Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update python-package.yml by baivab85 #146

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

baivab85
Copy link

@baivab85 baivab85 commented Mar 8, 2024

##The issue was :

We need a new GitHub Action workflow to automatically publish this package to PyPI (Python Package Index)

This will be useful for other project, to ease their installation.

The GitHub Action pypa/gh-action-pypi-publish could be easily added to .github//workflows/python-package.yml:

  • name: Publish distribution 📦 to Test PyPI
    uses: pypa/gh-action-pypi-publish@release/v1
    with:
    password: ${{ secrets.TEST_PYPI_API_TOKEN }}
    repository_url: https://test.pypi.org/legacy/
    This action should only run if secrets.TEST_PYPI_API_TOKEN is configured

Checklist

Ans:

My Logic and implementation details are the following:

The YAML file is a GitHub Actions workflow for a Python package. The workflow is triggered on push and pull request events to the main branch. It includes several jobs that are run on the latest version of Ubuntu.

The jobs in the workflow include:

Setting up Python: The versions used are 3.9 and 3.11.

Installing pip: The latest version of pip is installed.

Installing dependencies: This includes upgrading setuptools, wheel, and twine. If there are any requirements specified in requirements.txt or requirements-dev.txt, those are installed as well.

Building the package: The Python package is built using setup.py.

Publishing the distribution to PyPI: The built package is published to PyPI using a token for authentication.

Publishing the distribution to Test PyPI: If a token for Test PyPI is available, the package is also published there.

Testing with pytest: Tests are run using pytest, and a HTML report is generated.

Uploading the test report: The test report is uploaded as an artifact.

Generating a coverage report: A coverage report is generated using pytest and a configuration file.

Uploading the coverage report: The coverage report is uploaded as an artifact.

This workflow ensures that the Python package is properly built and tested and that the distribution is published to PyPI and Test PyPI. It also provides test and coverage reports for further analysis.

The Issue was assigned to me by Nico Sir.

Process to test the code:

The code provided in the context is a GitHub Actions workflow for a Python project. It includes steps for setting up Python, installing dependencies, building the package, publishing the package to PyPI and Test PyPI, and running tests with pytest.

Here are the steps to test the code:

Write our tests: The tests should be written in a separate file (or files) using a testing framework like pytest. The context suggests that the tests are located in a directory named tests/.

Run the tests: In the workflow, the tests are run with the command pytest --html=report.html --self-contained-html. This command runs the tests and generates a HTML report.

Check the test report: After the tests are run, the report is uploaded as an artifact with the name report.html. We can download this report from the GitHub Actions tab in your repository to check the results of the tests.

Check the coverage report: The workflow also includes a step to generate a coverage report with the command pytest --cov-config=.coveragerc --cov-report=html --cov=pyafipws tests/. This command generates a coverage report that shows how much of my code is covered by the tests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant