mark one more test as docker #2318
Workflow file for this run
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
name: CI | |
on: | |
push: | |
# re-enable all branches until we start simulating again. | |
# branches: | |
# - 'develop' | |
# - 'main' | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
test: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
python-version: ["3.10", "3.11"] | |
test_env: [python, docs, mypy] | |
mbl_branch: [maint_9.1.x] | |
exclude: | |
# only test mypy on linux for all versions of python | |
- os: windows-latest | |
test_env: mypy | |
# only test docs on linux for all versions of python | |
- os: windows-latest | |
test_env: docs | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Display system info | |
run: | | |
python -c "import sys; print(sys.version)" | |
docker --version | |
docker-compose --version | |
- name: Install Poetry | |
uses: Gr1N/setup-poetry@v8 # optionally set specific poetry version. Defaults to latest | |
- name: Install dependencies with Poetry | |
# poetry setuptools workaround sourced from https://github.com/python-poetry/poetry/issues/7611#issuecomment-1711443539 | |
run: | | |
poetry --version | |
poetry self add setuptools | |
poetry install | |
- name: Install modelicafmt | |
run: | | |
RUNNER_SYSTEM=$(python -c 'import platform; print(platform.system())') | |
curl -SLO "https://github.com/urbanopt/modelica-fmt/releases/download/v0.2-pr.2/modelica-fmt_0.2-pr.2_${RUNNER_SYSTEM}_x86_64.tar.gz" | |
tar xzf modelica-fmt_0.2-pr.2_${RUNNER_SYSTEM}_x86_64.tar.gz | |
chmod +x modelicafmt | |
if [[ $RUNNER_SYSTEM == 'Linux' ]]; then | |
sudo mv modelicafmt /usr/local/bin/ | |
else | |
mv modelicafmt '/c/Program Files/' | |
fi | |
- name: Install MBL | |
env: | |
MATRIX_OS: ${{ matrix.os }} | |
MBL_BRANCH: ${{ matrix.mbl_branch }} | |
run: | | |
if [[ "${MATRIX_OS}" == 'ubuntu-latest' ]]; then | |
MODELICAPATH='/home/runner/work/modelica-buildings' | |
else | |
echo $GITHUB_WORKSPACE | |
MODELICAPATH='/c/Program Files/modelica-buildings' | |
fi | |
git clone --single-branch --branch ${MBL_BRANCH} https://github.com/lbl-srg/modelica-buildings.git "${MODELICAPATH}" | |
cd "${MODELICAPATH}" | |
echo "Git branch is $(git branch)" | |
# export MODELICAPATH for subsequent steps | |
echo "MODELICAPATH=${MODELICAPATH}" >> $GITHUB_ENV | |
- name: Run pytest (simulation on linux only) | |
env: | |
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} | |
run: | | |
if [ '${{ matrix.test_env }}' == 'python' ]; then | |
if [ '${{ matrix.os }}' == 'windows-latest' ]; then | |
poetry run pytest --doctest-modules -v -m 'not simulation and not compilation and not dymola' ./tests | |
else | |
poetry run pytest --doctest-modules -v -m 'not dymola' --cov-report term-missing --cov . ./tests | |
fi | |
fi | |
- name: Run pre-commit | |
uses: pre-commit/[email protected] | |
with: | |
extra_args: --all-files | |
- name: Run mypy | |
run: | | |
if [ '${{ matrix.test_env }}' == 'mypy' ]; then | |
poetry run mypy --install-types --non-interactive --show-error-codes . | |
fi | |
- name: Build docs | |
run: | | |
if [ '${{ matrix.test_env }}' == 'docs' ]; then | |
cd docs | |
poetry run make html | |
fi | |
- name: Coveralls | |
env: | |
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
if: ${{ matrix.os == 'ubuntu-latest' && matrix.test_env == 'python' && matrix.mbl_branch == 'maint_9.1.x' }} | |
run: | | |
poetry run coveralls | |
- name: Job Failed | |
if: ${{ failure() }} | |
run: | | |
echo "Maybe these logs will help?" | |
ls -alt $GITHUB_WORKSPACE | |
find $GITHUB_WORKSPACE -type f -name 'stdout.log' -print | while read filename; do | |
echo "============================================ stdout.log =========================================" | |
echo "$filename" | |
cat "$filename" | |
done |