From 1cc0119e7f59899d12f4488cbfc8da9ff9ff3efa Mon Sep 17 00:00:00 2001 From: jonavellecuerdo Date: Mon, 20 Nov 2023 13:36:49 -0500 Subject: [PATCH] Update CI/CD workflow --- .github/workflows/ci.yml | 45 +++++++++++++ .github/workflows/test.yml | 24 ------- .gitignore | 135 +++++++++++++++++++------------------ .python-version | 1 + 4 files changed, 115 insertions(+), 90 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/test.yml create mode 100644 .python-version diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..8d3d501 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,45 @@ +# This workflow runs tests and sends a coverage report to Coveralls +# Requirements: Calling repo must use pipenv for dependency management, contain a +# .python-version file, and contain a Makefile with `make test` and `make coveralls` +# commands. +name: CI + +on: push + +jobs: + test: + name: Run tests and report coverage + runs-on: ubuntu-latest + env: + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} + DJANGO_SECRET_KEY: ${{ secrets.DJANGO_SECRET_KEY }} + steps: + - uses: actions/checkout@v3 + + - name: Get python version + run: | + python_version=$(cat .python-version) + echo "python_version=${python_version}" >> $GITHUB_ENV + + - name: Set up python + uses: actions/setup-python@v4 + with: + python-version: ${{ env.python_version }} + architecture: x64 + + - name: Install + run: | + python -m pip install --upgrade pip pipenv + pipenv install --dev + + - name: Run tests and make coverage report + run: | + make test + make coveralls + + - name: Coveralls + uses: coverallsapp/github-action@1.1.3 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + lint: + uses: mitlibraries/.github/.github/workflows/python-shared-lint.yml@main \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index ba97a27..0000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Tests -on: push -jobs: - test: - name: Run tests - env: - COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} - DJANGO_SECRET_KEY: ${{ secrets.DJANGO_SECRET_KEY }} - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup python - uses: actions/setup-python@v2 - with: - python-version: '3.11' - architecture: x64 - - name: Install - run: | - python -m pip install --upgrade pip pipenv - pipenv install --dev - - name: Test - run: pipenv run pytest --cov=solenoid - - name: Coveralls - run: pipenv run coveralls diff --git a/.gitignore b/.gitignore index 59753a2..19e7bfb 100644 --- a/.gitignore +++ b/.gitignore @@ -9,62 +9,8 @@ build/*.js .sass-cache/ logs/ -# Created by https://www.gitignore.io/api/osx,linux,django,python - -### Django ### -*.log -*.log.* -*.pot -*.pyc -__pycache__/ -local_settings.py -db.sqlite3 -media - -### Linux ### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -### OSX ### -*.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -### Python ### # Byte-compiled / optimized / DLL files +__pycache__/ *.py[cod] *$py.class @@ -73,7 +19,6 @@ Temporary Items # Distribution / packaging .Python -env/ build/ develop-eggs/ dist/ @@ -86,9 +31,11 @@ parts/ sdist/ var/ wheels/ +share/python-wheels/ *.egg-info/ .installed.cfg *.egg +MANIFEST # PyInstaller # Usually these files are written by a python script from a template @@ -103,18 +50,28 @@ pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ +.nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml -*,cover +*.cover +*.py,cover .hypothesis/ +.pytest_cache/ +cover/ +coverage/ # Translations *.mo +*.pot # Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal # Flask stuff: instance/ @@ -127,27 +84,53 @@ instance/ docs/_build/ # PyBuilder +.pybuilder/ target/ # Jupyter Notebook .ipynb_checkpoints -# pyenv -.python-version +# IPython +profile_default/ +ipython_config.py -# celery beat schedule file +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff celerybeat-schedule +celerybeat.pid # SageMath parsed files *.sage.py -# dotenv +# Environments .env - -# virtualenv .venv +env/ venv/ ENV/ +env.bak/ +venv.bak/ # Spyder project settings .spyderproject @@ -159,7 +142,27 @@ ENV/ # mkdocs documentation /site -# End of https://www.gitignore.io/api/osx,linux,django,python +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintainted in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ -# JetBrains IDE -.idea \ No newline at end of file +.DS_Store +output/ +.vscode/ \ No newline at end of file diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..f4687fd --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.11.2 \ No newline at end of file