-
Notifications
You must be signed in to change notification settings - Fork 16
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
Baivab updated python-package.yml #145
base: main
Are you sure you want to change the base?
Conversation
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why did you remove the upgrade command for pips?
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | ||
if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi | ||
- name: Lint with flake8 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All of this block of code is required for this project to be run and tested. Please ensure you have read the documentation properly before proceeding
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you please review this code is this correct or not? Actually its a first Open Source for me . So I need guidance and review of my pull requests
`name: Python package
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: [3.9, 3.11]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Upgrade pip
run: |
python -m pip install --upgrade pip
- name: Install dependencies
run: |
python -m pip install flake8
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi
- name: Lint with flake8
run: |
# TODO: stop the build if there are Python syntax errors or undefined names
flake8 . --count --exit-zero --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Install package
run: |
python setup.py install
- name: Download certificate and private key
run: |
wget "https://www.sistemasagiles.com.ar/soft/pyafipws/reingart2021.zip" -O reingart2019.zip
unzip reingart2019.zip
- name: Copy configuration files
run: |
sudo cp conf/rece.ini rece.ini
sudo cp conf/wslum.ini wslum.ini
sudo cp conf/wsremcarne.ini wsremcarne.ini
sudo cp conf/wsltv.ini wsltv.ini
sudo cp conf/wslsp.ini wslsp.ini
- name: Install pip dependencies
run: |
python -m pip install --upgrade setuptools wheel twine
- name: Build package
run: |
python setup.py sdist bdist_wheel
- name: Publish distribution 📦 to PyPI
uses: pypa/gh-action-pypi-publish@master
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
- name: Publish distribution 📦 to Test PyPI
if: secrets.TEST_PYPI_API_TOKEN != ''
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
- name: Test with pytest
run: |
pytest --html=report.html --self-contained-html
- name: Upload test report
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: report.html
path: report.html
- name: Coverage Report
run: |
pytest --cov-config=.coveragerc --cov-report=html --cov=pyafipws tests/
- name: Upload coverage report
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: Coverage_Report
path: htmlcov
`
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know it's your first opensource work
So it's good to always ask especially with issues like deleting code somewhere
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok Sir, I might have mistakenly deleted it but updated in the previous code can you please review it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@baivab85 First, you need to sign-off the commits and then send a new commit with the changes requested by @HanslettTheDev so that he can review your work again.
Don't worry if you have to send more commits until your work can be approved, that's the process and you gain practice in the meantime.
Thank you for your collaboration.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@baivab85 Try to push the the github script in this same branch
I noticed some minor changes in it, Just push to this branch so the github runners can execute it so we can see the commit changes per line
Summary
##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:
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. The coverage report is also uploaded as an artifact with the name Coverage_Report.
The Code is: