Version 0.5.1 #66
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow builds and tests PRs | |
name: PR build & test | |
on: | |
pull_request: | |
branches: | |
- "main" | |
- "master" | |
paths: | |
- "lyncs*/__init__.py" | |
push: | |
branches: | |
- "main" | |
- "master" | |
jobs: | |
build-n-publish: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
py-version: | |
- 3.x | |
os: | |
- ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.py-version }} | |
uses: actions/setup-python@v1 | |
with: | |
python-version: ${{ matrix.py-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install lyncs_setuptools | |
- name: Check github ref | |
id: check-ref | |
env: | |
TEST_PASSWORD: ${{ secrets.test_pypi_password }} | |
PYPI_PASSWORD: ${{ secrets.pypi_password }} | |
run: | | |
if [[ $GITHUB_REF == 'refs/heads/main' || $GITHUB_REF == 'refs/heads/master' ]]; then | |
echo '::set-output name=main::true' | |
echo '::set-output name=extra::' | |
echo '::set-output name=url::' | |
echo "::set-output name=token::$PYPI_PASSWORD" | |
else | |
echo '::set-output name=main::false' | |
echo '::set-output name=extra::--extra-index-url https://test.pypi.org/simple/' | |
echo '::set-output name=url::--repository-url https://test.pypi.org/legacy/' | |
echo "::set-output name=token::$TEST_PASSWORD" | |
fi | |
- name: Trying to install from pip | |
id: check-version | |
continue-on-error: true | |
env: | |
EXTRA: ${{ steps.check-ref.outputs.extra }} | |
run: | | |
pip install $EXTRA $(lyncs_setuptools name)[all]==$(lyncs_setuptools version) | |
- name: Install from source | |
if: ${{ steps.check-version.outcome == 'failure' }} | |
run: | | |
pip install -e .[all] | |
- name: Run tests | |
run: | | |
pytest -v | |
- name: Upload if not up to date | |
if: ${{ steps.check-version.outcome == 'failure' }} | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ steps.check-ref.outputs.token }} | |
URL: ${{ steps.check-ref.outputs.url }} | |
run: | | |
pip install twine | |
python setup.py sdist | |
twine upload $URL dist/* | |
clean-run: | |
needs: build-n-publish | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
py-version: | |
- 3.7 | |
- 3.8 | |
os: | |
- ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.py-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.py-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install lyncs_setuptools | |
- name: Check github ref | |
id: check-ref | |
run: | | |
if [[ $GITHUB_REF == 'refs/heads/main' || $GITHUB_REF == 'refs/heads/master' ]]; then | |
echo '::set-output name=extra::' | |
else | |
echo '::set-output name=extra::--extra-index-url https://test.pypi.org/simple/' | |
fi | |
- name: Install via pip | |
env: | |
EXTRA: ${{ steps.check-ref.outputs.extra }} | |
run: | | |
# Keeps trying installing until succeeds (needs to wait for PyPi to update the index) | |
for i in $(seq 5); do | |
[ $i -gt 1 ] && sleep 20 | |
pip install $EXTRA $(lyncs_setuptools name)[all]==$(lyncs_setuptools version) && s=0 && break || s=$? | |
done | |
(exit $s) | |
- name: Run tests | |
run: | | |
pytest -v --import-mode=importlib |