You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.7 KiB
81 lines
2.7 KiB
--- |
|
name: Test |
|
on: |
|
push: |
|
branches: |
|
- main |
|
- production |
|
- feature/* |
|
- fix/* |
|
pull_request: |
|
branches: |
|
- main |
|
- production |
|
jobs: |
|
test: |
|
strategy: |
|
max-parallel: 1 |
|
matrix: |
|
python-version: ['3.7', '3.8', '3.9', '3.10'] |
|
runs-on: ubuntu-latest |
|
steps: |
|
- name: Download code |
|
uses: actions/checkout@v2 |
|
with: |
|
persist-credentials: false |
|
fetch-depth: 0 |
|
- name: Setup Python ${{ matrix.python-version }} |
|
uses: actions/setup-python@v2 |
|
with: |
|
python-version: ${{ matrix.python-version }} |
|
- name: Download cache for pip |
|
uses: actions/cache@v2 |
|
with: |
|
path: ~/.cache/pip |
|
key: py-${{ matrix.python-version }}-poetry-pip-1.1.13 |
|
restore-keys: poetry-pip |
|
- name: Install poetry |
|
run: pip install poetry==1.1.13 |
|
- name: Download cache for poetry |
|
id: poetry-install |
|
uses: actions/cache@v2 |
|
with: |
|
path: ./.venv/ |
|
key: py-${{ matrix.python-version }}-poetry-install-${{ hashFiles('poetry.lock') }} |
|
restore-keys: poetry-install |
|
- name: Install packages |
|
if: steps.poetry-install.outputs.cache-hit != 'true' |
|
run: rm -rf ./.venv/ && poetry install |
|
- name: Download cache for pre-commit |
|
id: pre-commit-install |
|
uses: actions/cache@v2 |
|
with: |
|
path: ~/.cache/pre-commit |
|
key: py-${{ matrix.python-version }}-pre-commit-install-${{ hashFiles('.pre-commit-config.yaml') }} |
|
restore-keys: pre-commit-install |
|
- name: Verify commit |
|
run: poetry run pre-commit run -a |
|
- name: Auto-generate missing pairs |
|
run: | |
|
. activate.sh && poetry run python generatestructs.py |
|
poetry run python generatestructs.py |
|
- name: Commit & Push changes |
|
uses: actions-js/push@v1.3 |
|
with: |
|
author_email: "morty.space@gmail.com" |
|
author_name: "Morty Space" |
|
directory: './src' |
|
message: "[BOT] Updated API pairs and coins" |
|
github_token: ${{ secrets.GITHUB_TOKEN }} |
|
- name: Prepare codeclimate |
|
run: | |
|
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter |
|
chmod +x ./cc-test-reporter |
|
./cc-test-reporter before-build |
|
- name: Test docs |
|
run: . activate.sh && cd docs && make doctest && cd .. |
|
- name: Test code |
|
timeout-minutes: 5 |
|
run: . activate.sh && poetry run pytest -v --cov . --cov-report xml:coverage.xml |
|
- name: Send codeclimate analytics |
|
run: ./cc-test-reporter after-build -r ${{ secrets.CC_TEST_REPORTER_ID }} --exit-code $?
|
|
|