Skip to content

Number pow operation #274

Number pow operation

Number pow operation #274

Workflow file for this run

# Copyright 2023 Goldman Sachs
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Build CI
on: [push, pull_request, workflow_dispatch]
jobs:
lint:
name: Lint Check
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup
uses: ./.github/workflows/actions/setup
with:
python-version: 3.11
- name: Install Linter
run: |
source .venv/bin/activate
echo "Pip executable is:" $(which pip)
echo "Installing flake8"
pip install flake8
pip install -e ./.github/workflows/lint/pylegend_copyright_checker
echo "Done with installing flake8"
- name: Perform Lint Check
run: |
source .venv/bin/activate
echo "Flake8 executable is:" $(which flake8)
echo "Running flake8 ./.github/workflows/lint --count --max-line-length=127 --show-source --statistics"
flake8 ./.github/workflows/lint --count --max-line-length=127 --show-source --statistics
echo "Running flake8 ./pylegend --count --max-line-length=127 --show-source --statistics"
flake8 ./pylegend --count --max-line-length=127 --show-source --statistics
echo "Done with lint check"
typing_check:
name: Typing Check
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup
uses: ./.github/workflows/actions/setup
with:
python-version: 3.11
- name: Install Type Checker
run: |
source .venv/bin/activate
echo "Pip executable is:" $(which pip)
echo "Installing mypy"
pip install mypy
echo "Done with installing mypy"
echo "Running pip install -r dev.requirements.txt"
pip install -r dev.requirements.txt
echo "Done with installing dependencies"
- name: Perform Typing Check
run: |
source .venv/bin/activate
echo "MyPy executable is:" $(which mypy)
echo "Running mypy ./.github/workflows/ --config-file=./.github/workflows/typing/config.cfg"
mypy ./.github/workflows/ --config-file=./.github/workflows/typing/config.cfg
echo "Running mypy ./pylegend/ --config-file=./.github/workflows/typing/config.cfg"
mypy ./pylegend/ --config-file=./.github/workflows/typing/config.cfg
echo "Done with typing check"
pytest:
name: PyTest
needs: [lint, typing_check]
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup
uses: ./.github/workflows/actions/setup
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
shell: bash
run: |
if [ "$RUNNER_OS" == "Windows" ]; then
source .venv/Scripts/activate
else
source .venv/bin/activate
fi
echo "Pip executable is:" $(which pip)
echo "Running pip install -r dev.requirements.txt"
pip install -r dev.requirements.txt
echo "Done with installing dependencies"
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: "11"
- name: Build Legend Server
shell: bash
run: |
mvn --batch-mode clean package -f ./pylegend/tests/resources/legend/server/pylegend-sql-server/pom.xml
- name: Run PyTest
shell: bash
run: |
if [ "$RUNNER_OS" == "Windows" ]; then
source .venv/Scripts/activate
else
source .venv/bin/activate
fi
echo "Pytest executable is:" $(which pytest)
echo "Running pytest --cov=pylegend -o log_cli=true -o log_cli_level=INFO -o log_cli_format=\"%(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)\" -o log_cli_date_format=\"%Y-%m-%d %H:%M:%S\" --junitxml=./test-results/pytest_result_${{ matrix.os }}_${{ matrix.python-version }}.xml --cov-report=xml:./coverage/coverage_${{ matrix.os }}_${{ matrix.python-version }}.xml"
pytest --cov=pylegend -o log_cli=true -o log_cli_level=INFO -o log_cli_format="%(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)" -o log_cli_date_format="%Y-%m-%d %H:%M:%S" --junitxml=./test-results/pytest_result_${{ matrix.os }}_${{ matrix.python-version }}.xml --cov-report=xml:./coverage/coverage_${{ matrix.os }}_${{ matrix.python-version }}.xml
echo "Done with running pytest"
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v3
with:
name: test-results
path: ./test-results/*.xml
- name: Upload Test Coverage Report
if: always()
uses: actions/upload-artifact@v3
with:
name: coverage-reports
path: ./coverage/*.xml
- name: CodeCov Coverage Report
uses: codecov/[email protected]
with:
files: ./coverage/coverage_${{ matrix.os }}_${{ matrix.python-version }}.xml
flags: pytest
- name: Upload CI Event
if: always()
uses: actions/upload-artifact@v3
with:
name: event-file
path: ${{ github.event_path }}