summaryrefslogtreecommitdiff
path: root/.github/workflows/check-and-publish.yml
diff options
context:
space:
mode:
authorBaudouin Raoult <baudouin.raoult@ecmwf.int>2020-11-19 12:29:40 +0000
committerBaudouin Raoult <baudouin.raoult@ecmwf.int>2020-11-19 12:29:40 +0000
commit3c28f4038e5de54adb45d9213c91ed34978158be (patch)
tree752a0a6da94c0b2c1733bda4b37fa72d21fdaace /.github/workflows/check-and-publish.yml
parent99437650423ca31552e7e647532b96e7bd340189 (diff)
Check
Diffstat (limited to '.github/workflows/check-and-publish.yml')
-rw-r--r--.github/workflows/check-and-publish.yml86
1 files changed, 86 insertions, 0 deletions
diff --git a/.github/workflows/check-and-publish.yml b/.github/workflows/check-and-publish.yml
new file mode 100644
index 0000000..11dce56
--- /dev/null
+++ b/.github/workflows/check-and-publish.yml
@@ -0,0 +1,86 @@
+name: Check and publish
+
+on:
+ push:
+ branches: [ master ]
+
+ pull_request:
+ branches: [ master ]
+
+ release:
+ types: [created]
+
+
+jobs:
+ checks:
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [windows-latest, ubuntu-latest, macos-latest]
+ python-version: ["2.7", "3.6", "3.7", "3.8", "3.9"]
+
+ name: Python ${{ matrix.python-version }} on ${{ matrix.platform }}
+ runs-on: ${{ matrix.platform }}
+
+ timeout-minutes: 20
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+
+ - name: Tokens
+ shell: python
+ env:
+ ECMWFAPIRC: ${{ secrets.CDSAPIRC }}
+
+ run: |
+ import os
+ for n in ('CDSAPIRC',):
+ m = os.path.expanduser("~/." + n.lower())
+ if os.environ[n]:
+ with open(m, "w") as f:
+ print(os.environ[n], file=f)
+
+ - name: Tests
+ run: |
+ python setup.py develop
+ pip install pytest
+ pytest
+
+ deploy:
+
+ if: ${{ github.event_name == 'release' }}
+
+ name: Upload to Pypi
+ needs: checks
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: '3.8'
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install setuptools wheel twine
+ - name: Build and publish
+ env:
+ TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
+ TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
+ run: |
+ python setup.py sdist
+ twine upload dist/*
+
+ - name: Notify climetlab
+ uses: mvasigh/dispatch-action@main
+ with:
+ token: ${{ secrets.NOTIFY_ECMWFLIBS }}
+ repo: climetlab
+ owner: ecmwf
+ event_type: cdsapi-updated