| @@ -9,6 +9,9 @@ insert_final_newline = true | |||||
| max_line_length = 120 | max_line_length = 120 | ||||
| trim_trailing_whitespace = true | trim_trailing_whitespace = true | ||||
| [*.{yml,yaml}] | |||||
| indent_size = 2 | |||||
| [*.md] | [*.md] | ||||
| trim_trailing_whitespace = false | trim_trailing_whitespace = false | ||||
| @@ -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 | |||||
| @@ -1,4 +1,4 @@ | |||||
| name: Commit lint | |||||
| name: Commit | |||||
| on: | on: | ||||
| push: | push: | ||||
| @@ -8,6 +8,7 @@ on: | |||||
| jobs: | jobs: | ||||
| commitlint: | commitlint: | ||||
| name: Message validation | |||||
| runs-on: ubuntu-latest | runs-on: ubuntu-latest | ||||
| steps: | steps: | ||||
| @@ -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 | |||||
| @@ -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 | |||||
| @@ -4,14 +4,17 @@ black: | |||||
| .PHONY: tests | .PHONY: tests | ||||
| tests: legacy-tests doctests | tests: legacy-tests doctests | ||||
| doctests: | |||||
| coverage-doctests: | |||||
| pipenv run python3 -m coverage run tests.py | pipenv run python3 -m coverage run tests.py | ||||
| doctests: | |||||
| pipenv run python3 tests.py | |||||
| legacy-tests: | legacy-tests: | ||||
| unset KOSMORRO_LATITUDE; \ | unset KOSMORRO_LATITUDE; \ | ||||
| unset KOSMORRO_LONGITUDE; \ | unset KOSMORRO_LONGITUDE; \ | ||||
| unset KOSMORRO_TIMEZONE; \ | unset KOSMORRO_TIMEZONE; \ | ||||
| pipenv run python3 -m coverage run -m unittest tests | |||||
| pipenv run python3 -m unittest tests | |||||
| .PHONY: build | .PHONY: build | ||||
| build: | build: | ||||
| @@ -15,6 +15,6 @@ if __name__ == "__main__": | |||||
| tests += t | tests += t | ||||
| if failures == 0: | if failures == 0: | ||||
| print("✔ All %d tests successfully passed." % tests) | |||||
| print("All %d tests successfully passed." % tests) | |||||
| else: | else: | ||||
| exit(1) | exit(1) | ||||