Main#17
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR introduces a new GitHub Actions workflow for building and testing a Python package using Conda. The workflow sets up a CI/CD pipeline that runs on every push to automatically test the codebase.
- Adds automated testing with pytest and code quality checks with flake8
- Configures Python 3.10 environment using Conda for dependency management
- Sets up continuous integration pipeline triggered on push events
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| - name: Install dependencies | ||
| run: | | ||
| conda env update --file environment.yml --name base | ||
| - name: Lint with flake8 | ||
| run: | | ||
| conda install flake8 | ||
| # stop the build if there are Python syntax errors or undefined names | ||
| flake8 . --count --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: Test with pytest | ||
| run: | |
There was a problem hiding this comment.
Updating the base conda environment is not recommended as it can cause conflicts. Consider creating a dedicated environment instead using 'conda env create' or 'conda create'.
| - name: Install dependencies | |
| run: | | |
| conda env update --file environment.yml --name base | |
| - name: Lint with flake8 | |
| run: | | |
| conda install flake8 | |
| # stop the build if there are Python syntax errors or undefined names | |
| flake8 . --count --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: Test with pytest | |
| run: | | |
| - name: Create conda environment | |
| run: | | |
| conda env create --file environment.yml | |
| - name: Activate environment and lint with flake8 | |
| run: | | |
| source activate $(head -1 environment.yml | cut -d' ' -f2) | |
| conda install flake8 | |
| # stop the build if there are Python syntax errors or undefined names | |
| flake8 . --count --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: Activate environment and test with pytest | |
| run: | | |
| source activate $(head -1 environment.yml | cut -d' ' -f2) |
| - name: Lint with flake8 | ||
| run: | | ||
| conda install flake8 | ||
| # stop the build if there are Python syntax errors or undefined names | ||
| flake8 . --count --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: Test with pytest | ||
| run: | | ||
| conda install pytest |
There was a problem hiding this comment.
Installing packages separately with multiple conda install commands is inefficient. Consider installing all dependencies in a single command: 'conda install flake8 pytest' or include them in the environment.yml file.
| - name: Lint with flake8 | |
| run: | | |
| conda install flake8 | |
| # stop the build if there are Python syntax errors or undefined names | |
| flake8 . --count --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: Test with pytest | |
| run: | | |
| conda install pytest | |
| - name: Install flake8 and pytest | |
| run: | | |
| conda install flake8 pytest | |
| - name: Lint with flake8 | |
| run: | | |
| # stop the build if there are Python syntax errors or undefined names | |
| flake8 . --count --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: Test with pytest | |
| run: | |
| conda install flake8 | ||
| # stop the build if there are Python syntax errors or undefined names | ||
| flake8 . --count --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: Test with pytest | ||
| run: | | ||
| conda install pytest |
There was a problem hiding this comment.
Installing packages separately with multiple conda install commands is inefficient. Consider installing all dependencies in a single command: 'conda install flake8 pytest' or include them in the environment.yml file.
| conda install flake8 | |
| # stop the build if there are Python syntax errors or undefined names | |
| flake8 . --count --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: Test with pytest | |
| run: | | |
| conda install pytest | |
| conda install flake8 pytest | |
| # stop the build if there are Python syntax errors or undefined names | |
| flake8 . --count --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: Test with pytest | |
| run: | |
No description provided.