[trivial] Fix typo. #37
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: Ubuntu | |
on: | |
push: | |
branches: [main, release-*] | |
pull_request: | |
branches: [main, release-*] | |
# Some notes on file paths: the working directory is $GITHUB_WORKSPACE, | |
# which equals /home/runner/work/my-repo-name/my-repo-name. The code is | |
# checked out to $GITHUB_WORKSPACE as well. We put all libraries under | |
# /home/runner/lib. | |
jobs: | |
compile: | |
name: Compile planner | |
timeout-minutes: 60 | |
runs-on: ${{ matrix.version.ubuntu }} | |
strategy: | |
matrix: | |
version: | |
- {ubuntu: 'ubuntu-22.04', python: '3.10', cc: gcc-12, cxx: g++-12, run_tox_tests: true} | |
- {ubuntu: 'ubuntu-22.04', python: '3.10', cc: clang-15, cxx: clang++-15, run_tox_tests: false} | |
- {ubuntu: 'ubuntu-24.04', python: '3.10', cc: gcc-14, cxx: g++-14, run_tox_tests: true} | |
- {ubuntu: 'ubuntu-24.04', python: '3.10', cc: clang-18, cxx: clang++-18, run_tox_tests: false} | |
env: | |
CC: ${{ matrix.version.cc }} | |
CXX: ${{ matrix.version.cxx }} | |
CPLEX_URL: ${{ secrets.CPLEX2211_LINUX_URL }} | |
cplex_DIR: /home/runner/lib/ibm/ILOG/CPLEX_Studio2211/cplex | |
CPLEX_LIB: /home/runner/lib/ibm/ILOG/CPLEX_Studio2211/cplex/bin/x86-64_linux/libcplex2211.so | |
soplex_DIR: /home/runner/lib/soplex-7.1.0 | |
SOPLEX_LIB: /home/runner/lib/soplex-7.1.0/lib/ | |
SOPLEX_INCLUDE: /home/runner/lib/soplex-7.1.0/include/ | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v3 | |
- name: Install Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.version.python }} | |
- name: Install dependencies | |
run: | | |
sudo apt-get -y install zlib1g-dev libgmp3-dev ${{ matrix.version.cc }} | |
mkdir /home/runner/lib | |
# In 22.04 g++-12 is not automatically installed when gcc-12 gets | |
# installed, so we do it separately. We do not use an unconditional | |
# install for any value of cxx because there is no separate package for | |
# clang++. | |
- name: Install CXX | |
if: startsWith(matrix.version.cxx, 'g++-') | |
run: | | |
sudo apt-get -y install ${{ matrix.version.cxx }} | |
# Only install CPLEX if its URL/secret is set. | |
- name: Install CPLEX | |
if: ${{ env.CPLEX_URL != 0 }} | |
run: | | |
# We redirect output of wget to hide the secret URLs. | |
wget -O cplex_installer $CPLEX_URL &> /dev/null | |
chmod +x cplex_installer | |
./cplex_installer -DLICENSE_ACCEPTED=TRUE -DUSER_INSTALL_DIR="$(dirname "${cplex_DIR}")" -i silent | |
rm cplex_installer | |
# Always install SoPlex | |
- name: Install SoPlex | |
run: | | |
git clone https://github.com/scipopt/soplex.git | |
cd soplex | |
git checkout release-710 | |
cd .. | |
cmake -S soplex -B build | |
cmake --build build | |
cmake --install build --prefix "${soplex_DIR}" | |
rm -rf soplex build | |
- name: Compile planner | |
run: | | |
export CXXFLAGS="-Werror" # Treat compilation warnings as errors. | |
./build.py --debug | |
./build.py | |
- name: Archive required files | |
# We only run tests on one compiler version per Ubuntu version, so we | |
# only need to archive that one. | |
if: ${{ matrix.version.run_tox_tests }} | |
run: | | |
files_to_archive="fast-downward.py driver misc src builds/debug/bin/ \ | |
builds/release/bin/ ${SOPLEX_LIB} ${SOPLEX_INCLUDE}" | |
if [[ ! -z "${CPLEX_URL}" ]]; then | |
files_to_archive="${files_to_archive} ${CPLEX_LIB}" | |
fi | |
tar cfz archive.tar.gz -C "/home/runner" $(realpath --relative-to="/home/runner" $files_to_archive) | |
- name: Upload archive | |
if: ${{ matrix.version.run_tox_tests }} | |
uses: actions/[email protected] | |
with: | |
name: compiled-planner-${{ matrix.version.ubuntu }} | |
path: archive.tar.gz | |
retention-days: 1 | |
run_tox_tests: | |
name: Test planner | |
runs-on: ${{ matrix.version.ubuntu }} | |
needs: compile # TODO: this only depends on the compile step with the gcc version we test | |
strategy: | |
matrix: | |
version: | |
- {ubuntu: ubuntu-22.04, python: '3.10'} | |
- {ubuntu: ubuntu-24.04, python: '3.10'} | |
env: | |
CPLEX_URL: ${{ secrets.CPLEX2211_LINUX_URL }} | |
steps: | |
- name: Download archive | |
uses: actions/[email protected] | |
with: | |
name: compiled-planner-${{ matrix.version.ubuntu }} | |
- name: Delete artifact | |
uses: geekyeggo/delete-artifact@v2 | |
with: | |
name: compiled-planner-${{ matrix.version.ubuntu }} | |
- name: Install Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.version.python }} | |
- name: Install dependencies | |
run: | | |
pip3 install tox | |
sudo apt-get -y install zlib1g-dev libgmp3-dev gcc flex bison | |
# NOTE: VAL does not compile with clang-12. | |
- name: Install VAL | |
run: | | |
git clone https://github.com/KCL-Planning/VAL.git | |
cd VAL | |
git checkout a5565396007eee73ac36527fbf904142b3077c74 | |
make clean # Remove old build artifacts and binaries. | |
sed -i 's/-Werror //g' Makefile # Ignore warnings. | |
make -j2 | |
mv validate ../ | |
cd ../ | |
rm -rf VAL | |
echo `pwd` >> $GITHUB_PATH # Add VAL to path of subsequent steps. | |
- name: Extract archive | |
# We need to make sure that library paths are the same as | |
# during compilation. | |
run: | | |
tar xfz archive.tar.gz -C "/home/runner" | |
- name: Run driver, translator and search tests | |
run: | | |
cd misc/ | |
tox -e driver,translator,search,parameters,autodoc | |
- name: Run CPLEX tests | |
if: ${{ env.CPLEX_URL != 0 }} | |
run: | | |
cd misc/ | |
tox -e cplex | |
- name: Run SoPlex tests | |
run: | | |
cd misc/ | |
tox -e soplex | |
... |