Browse Source

ci: add support for Windows (#14)

tags/v0.11.1
Jérôme Deuchnord 3 years ago
committed by GitHub
parent
commit
746ce953c8
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 121 additions and 144 deletions
  1. +3
    -0
      .editorconfig
  2. +0
    -66
      .github/workflows/codeql-analysis.yml
  3. +2
    -1
      .github/workflows/commitlint.yml
  4. +110
    -0
      .github/workflows/tests.yml
  5. +0
    -74
      .github/workflows/unit-tests.yml
  6. +5
    -2
      Makefile
  7. +1
    -1
      tests.py

+ 3
- 0
.editorconfig View File

@@ -9,6 +9,9 @@ insert_final_newline = true
max_line_length = 120
trim_trailing_whitespace = true

[*.{yml,yaml}]
indent_size = 2

[*.md]
trim_trailing_whitespace = false



+ 0
- 66
.github/workflows/codeql-analysis.yml View File

@@ -1,66 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
name: "CodeQL"

on:
push:
branches: [main, features]
pull_request:
branches: [main, features]
schedule:
- cron: '0 8 * * 0'

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
language: ['python']

steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2

# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main

# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl

# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language

#- run: |
# make bootstrap
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

+ 2
- 1
.github/workflows/commitlint.yml View File

@@ -1,4 +1,4 @@
name: Commit lint
name: Commit

on:
push:
@@ -8,6 +8,7 @@ on:

jobs:
commitlint:
name: Message validation
runs-on: ubuntu-latest

steps:


+ 110
- 0
.github/workflows/tests.yml View File

@@ -0,0 +1,110 @@
name: Tests

on:
push:
branches: [main, features]
pull_request:
branches: [main, features]

jobs:
legacy-tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-18.04
- ubuntu-20.04
- macos-10.15
- macos-11.0
- windows-2019
python_version:
- '3.7'
- '3.8'
- '3.9'

name: Legacy tests (Python ${{ matrix.python_version }} on ${{ matrix.os }})
steps:
- uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python_version }}

- name: Prepare environment
run: |
pip install --upgrade pip pipenv

- name: Install dependencies (all systems)
run: |
pipenv lock --pre
pipenv sync --dev
pipenv install --dev

- name: Install dependencies (Windows-specific)
if: ${{ matrix.os == 'windows-2019' }}
run: |
pipenv lock --dev -r > requirements.txt
pip install -r requirements.txt

- name: Run legacy tests
run: |
make legacy-tests

doc-tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-18.04
- ubuntu-20.04
- macos-10.15
- macos-11.0
- windows-2019
python_version:
- '3.7'
- '3.8'
- '3.9'

name: Doc tests (Python ${{ matrix.python_version }} on ${{ matrix.os }})
steps:
- uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python_version }}

- name: Prepare environment
run: |
pip install --upgrade pip pipenv

- name: Install dependencies (all systems)
run: |
pipenv lock --pre
pipenv sync --dev
pipenv install --dev

- name: Install dependencies (Windows-specific)
if: ${{ matrix.os == 'windows-2019' }}
run: |
pipenv lock -r > requirements.txt
pip install -r requirements.txt

- name: Run doc tests (with coverage)
if: ${{ matrix.os == 'ubuntu-20.04' && matrix.python_version == '3.9' }}
run: |
make coverage-doctests

- name: Run doc tests
if: ${{ matrix.os != 'ubuntu-20.04' && matrix.python_version != '3.9' }}
run: |
make doctests

- name: Push code coverage
env:
COVERALLS_PRO_TOKEN: ${{ secrets.COVERALLS_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: ${{ matrix.os == 'ubuntu-20.04' && matrix.python_version == '3.9' }}
run: |
pipenv run coveralls --service=github

+ 0
- 74
.github/workflows/unit-tests.yml View File

@@ -1,74 +0,0 @@
name: Unit tests

on:
push:
branches: [main, features]
pull_request:
branches: [main, features]

jobs:
legacy-unit-tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-18.04
- ubuntu-20.04
- macos-10.15
- macos-11.0
python-version:
- '3.7'
- '3.8'
- '3.9'

name: Legacy unit tests (Python ${{ matrix.python-version }} on ${{ matrix.os }})
steps:
- uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install --upgrade pip pipenv
pipenv lock --pre
pipenv sync --dev
- name: Unit tests
run: |
make legacy-tests

unit-tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-18.04
- ubuntu-20.04
- macos-10.15
- macos-11.0
python-version:
- '3.7'
- '3.8'
- '3.9'

name: Unit tests (Python ${{ matrix.python-version }} on ${{ matrix.os }})
steps:
- uses: actions/checkout@v1
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install --upgrade pip pipenv
pipenv lock --pre
pipenv sync --dev
- name: Unit tests
env:
COVERALLS_PRO_TOKEN: ${{ secrets.COVERALLS_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
make doctests
pipenv run coveralls --service=github

+ 5
- 2
Makefile View File

@@ -4,14 +4,17 @@ black:
.PHONY: tests
tests: legacy-tests doctests

doctests:
coverage-doctests:
pipenv run python3 -m coverage run tests.py

doctests:
pipenv run python3 tests.py

legacy-tests:
unset KOSMORRO_LATITUDE; \
unset KOSMORRO_LONGITUDE; \
unset KOSMORRO_TIMEZONE; \
pipenv run python3 -m coverage run -m unittest tests
pipenv run python3 -m unittest tests

.PHONY: build
build:


+ 1
- 1
tests.py View File

@@ -15,6 +15,6 @@ if __name__ == "__main__":
tests += t

if failures == 0:
print("All %d tests successfully passed." % tests)
print("All %d tests successfully passed." % tests)
else:
exit(1)

Loading…
Cancel
Save