-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Convert Azure Pipeline to Github Actions (#543)
* add test python requirements * migrate azure pipeline to github actions * Fix test workflow syntax - properly embed bash calls - fix artifact reference name - try to fix MATLAB test discovery * attempt to fix python setup * switch run-test to run-command * try to upload to codecov * Fix CI testing Use version of MATLAB that supports hdf5 dynamically loaded filters. * check ci env setting * fix debug pipeline * more env fixing * fix expected error test id * remove debug prints from ci * add source files to download repo * try different test suite * try different test suite (again) * Try using MATLAB R2024a for tests in workflow * Give test workflow a shorter name * Add codecov settings file * Update versions of dependent actions to latest versions * Update test badge in README.md * Rename utilities folder to tools * Add codespell workflow --------- Co-authored-by: ehennestad <ehennestad@gmail.com> Co-authored-by: Ben Dichter <ben.dichter@gmail.com>
- Loading branch information
1 parent
3be8111
commit 5cd6af6
Showing
9 changed files
with
162 additions
and
50 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
pynwb | ||
hdf5plugin |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
[codespell] | ||
skip = *.html,*logo_matnwb.svg,*fastsearch.m,*.yaml,*UpdateThirdPartyFromUpstream.sh,*testResults.xml | ||
skip = *.html,*logo_matnwb.svg,*fastsearch.m,*.yaml,*testResults.xml | ||
ignore-words-list = DNE,nd,whos |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
coverage: | ||
range: "90...100" | ||
status: | ||
project: | ||
default: | ||
target: 90 # Set the desired coverage target as 90% | ||
threshold: 1 # Allowable drop in coverage | ||
patch: | ||
default: | ||
# 75% of the changed code must be covered by tests | ||
threshold: 25 | ||
only_pulls: true |
File renamed without changes.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# Note: This workflow allows specifying a custom location for the Codespell | ||
# configuration file by defining CONFIG_FILE as an environment variable. | ||
# A defined subset of options is extracted from this file and passed to the | ||
# Codespell action. This also ensures that the output of the codespell action | ||
# prints out the values of these options. | ||
# Todo: Generalize the extraction of codespell input arguments/options. | ||
|
||
name: Codespell | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- master | ||
push: | ||
branches-ignore: | ||
- master | ||
|
||
jobs: | ||
codespell: | ||
name: Check for spelling errors | ||
runs-on: ubuntu-latest | ||
env: | ||
CONFIG_FILE: .codespellrc | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Extract codespell configurations from configuration file | ||
id: config | ||
run: | | ||
# Extract 'skip' value from the config file, excluding 'skip = ' part | ||
skip=$(grep -E '^skip' "$CONFIG_FILE" | sed 's/^skip *= *//') | ||
# Extract 'ignore-words-list' value from the config file, excluding 'ignore-words-list = ' part | ||
ignore_words=$(grep -E '^ignore-words-list' "$CONFIG_FILE" | sed 's/^ignore-words-list *= *//') | ||
# Export values as environment variables | ||
echo "SKIP=$skip" >> $GITHUB_ENV | ||
echo "IGNORE_WORDS_LIST=$ignore_words" >> $GITHUB_ENV | ||
- name: Codespell | ||
uses: codespell-project/actions-codespell@v2 | ||
with: | ||
skip: "${{ env.SKIP }}" | ||
ignore_words_list: "${{ env.IGNORE_WORDS_LIST }}" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
# Run and publish MATLAB tests with coverage | ||
name: Run tests | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- master | ||
paths-ignore: | ||
- "*.md" | ||
- "*.codespellrc" | ||
- ".github/**" | ||
push: | ||
branches: | ||
- master | ||
|
||
jobs: | ||
run_tests: | ||
name: Run MATLAB tests | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: check out repository | ||
uses: actions/checkout@v4 | ||
- name: install python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.10' | ||
- name: configure python env | ||
run: | | ||
python -m pip install -U pip | ||
pip install -r +tests/requirements.txt | ||
echo "HDF5_PLUGIN_PATH=$(python -c "import hdf5plugin; print(hdf5plugin.PLUGINS_PATH)")" >> "$GITHUB_ENV" | ||
- name: install MATLAB | ||
uses: matlab-actions/setup-matlab@v2 | ||
with: | ||
release: R2024a # this is necessary to test dynamic filters | ||
- name: run tests | ||
uses: matlab-actions/run-command@v2 | ||
with: | ||
command: results = assertSuccess(nwbtest); assert(~isempty(results), 'No tests ran'); | ||
- name: upload JUnit results | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: test-results | ||
path: testResults.xml | ||
retention-days: 1 | ||
- name: upload coverage results | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: test-coverage | ||
path: ./coverage.xml | ||
publish_junit: | ||
name: Publish JUnit Test Results | ||
runs-on: ubuntu-latest | ||
if: ${{ always() }} | ||
needs: [run_tests] | ||
steps: | ||
- name: retrieve result files | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: test-results | ||
- name: publish results | ||
uses: mikepenz/action-junit-report@v4 | ||
with: | ||
report_paths: 'testResults.xml' | ||
publish_coverage: | ||
name: Publish Cobertura Test Coverage | ||
runs-on: ubuntu-latest | ||
needs: [run_tests] | ||
steps: | ||
- name: check out repository | ||
uses: actions/checkout@v4 | ||
- name: retrieve code coverage files | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: test-coverage | ||
- name: publish on Codecov | ||
uses: codecov/codecov-action@v4 | ||
with: | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
files: coverage.xml | ||
name: codecov-matnwb | ||
verbose: true |
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
This file was deleted.
Oops, something went wrong.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
function validateCodecovSettings() | ||
% validateCodecovSettings Validate a codecov settings file. | ||
% | ||
% Note: This is a utility function developer's can use to check the | ||
% codecov settings file in .github/.codecov.yaml | ||
|
||
sysCommand = sprintf("curl -X POST --data-binary @%s https://codecov.io/validate", ... | ||
fullfile(misc.getMatnwbDir, '.github', '.codecov.yaml')); | ||
|
||
[status, message] = system(sysCommand); | ||
|
||
assert(status == 0, 'Curl command failed') | ||
|
||
assert(contains(message, 'Valid!'), ... | ||
'Codecov settings file is invalid') | ||
end |