Epidata-CI #1326
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
name: Epidata-CI | |
on: | |
schedule: | |
- cron: "40 1 * * *" | |
push: | |
branches: | |
- 'main' | |
tags: | |
- version-* | |
paths: | |
- '**/memilio-epidata/**' | |
- '.github/**' | |
pull_request: | |
types: [opened, reopened, synchronize, ready_for_review] | |
paths: | |
- '**/memilio-epidata/**' | |
- '.github/**' | |
workflow_dispatch: | |
jobs: | |
pre-commit: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.11 | |
- uses: pre-commit/[email protected] | |
build-py-epidata: | |
runs-on: ubuntu-latest | |
container: quay.io/pypa/manylinux_2_28_x86_64 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/build-py | |
with: | |
package: epidata | |
build-py-plot: | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-latest | |
container: quay.io/pypa/manylinux_2_28_x86_64 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/build-py | |
with: | |
package: plot | |
test-py-epidata: | |
needs: build-py-epidata | |
strategy: | |
matrix: | |
version: ["3.8", "3.11"] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/test-py | |
with: | |
version: ${{ matrix.version }} | |
package: epidata | |
coverage: ON | |
test-py-plot: | |
if: github.event.pull_request.draft == false | |
needs: [build-py-plot, build-py-epidata] | |
strategy: | |
matrix: | |
version: ["3.8", "3.11"] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/test-py | |
with: | |
version: ${{ matrix.version }} | |
package: plot | |
coverage: ON | |
merge-artifacts: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
packages: [epidata, plot] | |
needs: [test-py-plot, test-py-epidata] | |
steps: | |
- name: merge epidata reports | |
uses: actions/upload-artifact/merge@v4 | |
with: | |
name: test-py-coverage-reports-${{ matrix.packages }} | |
pattern: test-py-coverage-reports-${{ matrix.packages }}-* | |
test-pylint-epidata: | |
needs: build-py-epidata | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/test-pylint | |
with: | |
package: epidata | |
test-pylint-plot: | |
needs: build-py-plot | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/test-pylint | |
with: | |
package: plot | |
download-data: | |
needs: build-py-epidata | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt-get -qq update | |
sudo apt-get -qq -y install python3-pip gnupg | |
python -m pip install --upgrade pip | |
- name: Download Python Wheels | |
uses: actions/download-artifact@v4 | |
with: | |
name: python-wheels-epidata | |
path: pycode/wheelhouse | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.11 | |
- name: Install Python Wheels | |
run: | | |
for pkg in `ls pycode/wheelhouse/*cp311*.whl`; do python -m pip install $pkg; done # packages that contain native extensions are version specific | |
for pkg in `ls pycode/wheelhouse/*py3*.whl`; do python -m pip install $pkg; done # pure python packages are not version specific | |
- name: Download Data | |
run: | | |
mkdir -p data_dl | |
getcasedata -o data_dl --no-progress-indicators | |
getpopuldata -o data_dl --no-progress-indicators | |
getjhdata -o data_dl --no-progress-indicators | |
getdividata -o data_dl --no-progress-indicators | |
getcommutermobility -o data_dl --no-progress-indicators | |
getvaccinationdata -o data_dl --no-progress-indicators | |
gethospitalizationdata -o data_dl --no-progress-indicators | |
- name: Upload Data | |
uses: actions/upload-artifact@v4 | |
with: | |
name: data | |
path: | | |
data_dl/*.json | |
data_dl/Germany/*.json | |
data_dl/Spain/*.json | |
data_dl/France/*.json | |
data_dl/Italy*.json | |
data_dl/SouthKorea/*.json | |
data_dl/US/*.json | |
data_dl/China/*.json | |
retention-days: 1 | |