diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index fa0759d..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: build - -on: [push, pull_request] - -jobs: - build: - runs-on: ${{ matrix.os }} - - strategy: - matrix: - os: [ubuntu-latest] - - env: - OS: ${{ matrix.os }} - PYTHON: '3.9' - - steps: - - - uses: actions/checkout@v1 - - - name: Set up Python - uses: actions/setup-python@master - with: - python-version: 3.9 - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install . - python -c 'import cerf; cerf.install_package_data()' - - - name: Test and generate coverage report on Linux - run: | - pip install pytest - pip install pytest-cov - pytest --cov=./ --cov-report=xml - diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..8cf2fe5 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,60 @@ +name: test + +on: + push: + branches: # on all branches except `typos` + - '**' + - '!typos' + paths-ignore: + - 'docs/**' + - 'notebooks/**' + - 'paper/**' + - '.git*' + - 'README.md' + pull_request: + branches: + - '**' + schedule: # Every Monday at 07:00 UTC, 00:00 PT + - cron: '0 7 * * 1' + +jobs: + build: + strategy: + matrix: + python-version: [ "3.9", "3.10", "3.11", "3.12" ] + os: [ubuntu-latest] + fail-fast: false + + name: Python ${{ matrix.python-version }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@master + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install . + python -c 'import cerf; cerf.install_package_data()' + + - name: Test and generate coverage report + run: | + pip install pytest + pip install pytest-cov + pytest --cov=./ --cov-report=xml + + - uses: codecov/codecov-action@v4 + with: + files: ./coverage.xml # optional + name: codecov-umbrella # optional + token: ${{ secrets.CODECOV_TOKEN }} # required + + - name: Notify on failure + if: failure() # This step will only run if any previous step fails + run: | + echo "Build or tests failed. Please check the logs."