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.

119 lines
4.2 KiB

---
name: Test & Release
on:
schedule:
- cron: "0 0 */5 * *"
push:
branches:
- main
- production
- feature/*
- fix/*
pull_request:
branches:
- main
- production
jobs:
test:
strategy:
max-parallel: 1
matrix:
python-version: ['3.10.7'] #, '3.9', '3.8', '3.7']
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.2.2
# restore-keys: poetry-pip
- name: Install poetry
run: pip install poetry==1.2.2
# - 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
# if: matrix.python-version == '3.10.7'
# 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
# if: matrix.python-version == '3.10.7'
# run: poetry run pre-commit run -a
# - name: Auto-generate missing pairs
# run: . activate.sh && poetry run python generatestructs.py
# - name: Commit & Push changes
# if: matrix.python-version == '3.10.7' && github.ref == 'refs/heads/main'
# uses: actions-js/push@v1.3
# with:
# author_email: "morty.space@gmail.com"
# author_name: "Morty Space"
# directory: './src'
# message: "sync: updated API pairs and coins"
# github_token: ${{ secrets.GITHUB_TOKEN }}
# - name: Prepare codeclimate
# if: matrix.python-version == '3.10.7'
# 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: Running the Sphinx to gh-pages Action
uses: uibcdf/action-sphinx-docs-to-gh-pages@v1.0.0
with:
branch: main
dir_docs: docs
sphinxapiopts: '--separate -o . ../'
sphinxapiexclude: '../*setup* ../*.ipynb'
sphinxopts: ''
# - name: Test code
# timeout-minutes: 6
# run: . activate.sh && poetry run pytest -v --cov . --cov-report xml:coverage.xml
# - name: Send codeclimate analytics
# if: matrix.python-version == '3.10.7'
# run: ./cc-test-reporter after-build -r ${{ secrets.CC_TEST_REPORTER_ID }} --exit-code $?
# release:
# runs-on: ubuntu-latest
# needs: test
# if: github.ref == 'refs/heads/main'
# steps:
# - name: Setup Python
# uses: actions/setup-python@v2
# with:
# python-version: '3.10.7'
# - name: Checkout code
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
# - name: Release
# env:
# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# REPOSITORY_USERNAME: '__token__'
# REPOSITORY_PASSWORD: ${{ secrets.REPOSITORY_PASSWORD }}
# run: |
# git fetch --all
# git reset --hard origin/main
# pip install python-semantic-release
# git config user.name github-actions
# git config user.email github-actions@github.com
# semantic-release publish