add platoon-aware lane change model (MSLCM_LC2013_CC) #64
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: windows-wheels | |
on: | |
push: # run on push events | |
paths-ignore: # but ignore everything in the docs subfolder | |
- 'docs/**' | |
- 'src/gui*/**' | |
- 'src/netedit/**' | |
- 'tests/netedit/**' | |
branches: | |
- '**' | |
tags: | |
- '*' | |
pull_request: # run on pull requests | |
paths-ignore: # but ignore everything in the docs subfolder | |
- 'docs/**' | |
schedule: | |
- cron: '5 1 * * *' | |
jobs: | |
build-wheels: | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
build_type: [libsumo] | |
python: [3.7, 3.8, 3.9, '3.10', 3.11] | |
include: | |
- build_type: sumo | |
python: 3.8 | |
env: | |
CC: cl | |
CXX: cl | |
SUMO_LIBRARIES: D:\a\sumo\sumo\sumolibraries | |
TMPDIR: D:\a\sumo\sumo\tmp | |
steps: | |
- name: Cloning SUMO | |
uses: actions/checkout@v3 | |
with: | |
path: sumo | |
fetch-depth: 0 | |
- name: Fetching SUMO tags | |
run: | | |
cd sumo | |
git fetch --tags --force | |
- name: Cloning SUMO Libraries | |
uses: actions/checkout@v3 | |
with: | |
repository: DLR-TS/SUMOLibraries | |
path: sumolibraries | |
- name: Configuring Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
architecture: x64 | |
- name: "Set up compiler cache" | |
uses: actions/cache@v3 | |
with: | |
path: C:\Users\runneradmin\AppData\Local\Mozilla\sccache\cache | |
key: ${{ matrix.build_type }}-${{ matrix.python }}-${{ github.head_ref }}-${{ github.run_number }} | |
restore-keys: | | |
${{ matrix.build_type }}-${{ matrix.python }}-${{ github.head_ref }}- | |
${{ matrix.build_type }}-${{ matrix.python }}- | |
# required for CMake to find Ninja | |
- name: "Set up MSVC Developer Command Prompt" | |
# uses: seanmiddleditch/gha-setup-vsdevenv@v4 # disabled until it gets an update for node.js | |
uses: compnerd/gha-setup-vsdevenv@main | |
- name: Installing Python build environment | |
run: | | |
python -m pip install wheel build | |
mkdir tmp | |
- name: Building libsumo plain | |
if: matrix.build_type == 'libsumo' | |
run: | | |
cd sumo | |
mkdir build_msvc | |
cmake -Bbuild_msvc -GNinja -DCHECK_OPTIONAL_LIBS=false | |
cmake --build build_msvc --config Release --target libsumo libtraci | |
xcopy /s data .\tools\libsumo\data\ | |
python tools\build\version.py tools\build\setup-libsumo.py tools\setup.py | |
python -m build --wheel tools -o dist --config-setting=--plat-name=win_amd64 | |
python tools\build\version.py tools\build\setup-libtraci.py tools\setup.py | |
python -m build --wheel tools -o dist --config-setting=--plat-name=win_amd64 | |
- name: Building SUMO Wheels | |
if: matrix.build_type == 'sumo' | |
run: | | |
cd sumo | |
python tools\build\version.py tools\build\setup-sumolib.py tools\setup.py | |
python -m build --wheel tools -o dist | |
python tools\build\version.py tools\build\setup-traci.py tools\setup.py | |
python -m build --wheel tools -o dist | |
copy build\pyproject.toml . | |
python tools\build\version.py tools\build\setup-sumo.py .\setup.py | |
python -m build --wheel --config-setting=--plat-name=win_amd64 --config-setting=-G=Ninja | |
python -c "import glob, os; f = glob.glob(\`"dist/eclipse_sumo-*\`")[0]; os.rename(f, f.replace(\`"cp38-cp38\`", \`"py2.py3-none\`"))" | |
- name: Uploading artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Py3-${{ matrix.build_type }}-wheels | |
path: sumo/dist | |
- name: Plain libsumo tests | |
if: matrix.build_type == 'libsumo' | |
run: | | |
$env:PATH += ";$pwd\sumo\bin" | |
$env:TEXTTEST_TMP = "D:/texttest" | |
cd sumo/build_msvc | |
$env:TEXTTEST_CI_APPS = "-a complex.libsumo.ci" | |
ctest -R texttest --verbose | |
copy Testing/Temporary/LastTest.log D:/texttest | |
- name: Uploading test results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: texttesttmp-${{ matrix.build_type }}-${{ matrix.python }} | |
path: D:/texttest | |
if-no-files-found: warn | |
################### | |
# PUBLISHING wheels | |
################### | |
publish-wheels: | |
if: github.repository == 'eclipse/sumo' && (github.event_name == 'schedule' || startsWith(github.ref, 'refs/tags')) | |
needs: [build-wheels] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/download-artifact@v2 | |
# this step removes the sumolib and traci packages which linux takes care of | |
- name: Moving artifacts | |
run: | | |
ls -lR | |
mkdir dist | |
mv ./*-wheels/* dist | |
rm -f dist/sumolib* dist/traci* | |
- name: Publish to Test PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
password: ${{ secrets.TEST_PYPI_TOKEN }} | |
repository-url: https://test.pypi.org/legacy/ | |
skip-existing: true | |
- name: Publish to PyPI | |
if: startsWith(github.ref, 'refs/tags') | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
password: ${{ secrets.PYPI_TOKEN }} |