Qt Creator 14 #170
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: ROS Qt Creator plugin build and archive release | |
on: [push, pull_request] | |
jobs: | |
build: | |
name: build (${{ matrix.config.name }}) | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
matrix: | |
config: | |
- { name: "Linux", os: ubuntu-20.04 } | |
- { name: "Windows", os: windows-latest } | |
- { name: "macOS", os: macos-14 } | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- name: install Microsoft Visual C++ (Windows) | |
uses: ilammy/msvc-dev-cmd@v1 | |
if: runner.os == 'Windows' | |
- name: install Linux system dependencies | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt update | |
sudo apt install libgl1-mesa-dev ninja-build libutf8proc-dev | |
- name: install Windows system dependencies | |
if: runner.os == 'Windows' | |
run: | | |
choco install ninja | |
- name: install macOS system dependencies | |
if: runner.os == 'macOS' | |
run: brew install ninja | |
- name: install yaml-cpp | |
shell: bash | |
run: | | |
git clone --depth 1 https://github.com/jbeder/yaml-cpp.git extern/yaml-cpp --branch yaml-cpp-0.7.0 | |
cd extern/yaml-cpp | |
cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DYAML_CPP_BUILD_TESTS=OFF | |
$(which sudo) cmake --build build --target install | |
- name: set build environment variables (Windows) | |
if: runner.os == 'Windows' | |
shell: bash | |
run: | | |
echo "YAML_DIR='C:/Program Files (x86)/YAML_CPP/share/cmake/yaml-cpp/'" >> $GITHUB_ENV | |
- name: install Qt and Qt Creator | |
shell: bash | |
run: | | |
pip install pyyaml requests py7zr==0.21 tqdm_loggable | |
python setup.py --export_variables | |
cat env >> $GITHUB_ENV | |
- name: build plugin | |
run: | | |
cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="${{ env.QTC_PATH }};${{ env.QT_PATH }}" -Dyaml-cpp_DIR=${{ env.YAML_DIR }} -DBUILD_ROSTERMINAL=OFF | |
cmake --build build --target package | |
- name: find plugin archive | |
id: find_plugin_archive | |
shell: bash | |
run: | | |
find build/ -maxdepth 1 -name 'ROSProjectManager-*-*-*.zip' -print0 | xargs -0 basename -a > ./archive_name | |
echo "QTC_PLUGIN_ARCHIVE=`cat ./archive_name`" >> $GITHUB_ENV | |
echo "QTC_PLUGIN_ARCHIVE: `cat ./archive_name`" | |
file ./build/`cat ./archive_name` | |
file ./build/ROSProjectManager-*-*-*.zip | |
- name: upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: plugin_archive_artifact_${{ matrix.config.name }} | |
if-no-files-found: error | |
path: | | |
./build/ROSProjectManager-*-*-*.zip | |
release: | |
name: create release | |
if: contains(github.ref, '/tags/') | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: download artifact | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: plugin_archive_artifact_* | |
merge-multiple: true | |
path: ./ | |
- name: create release | |
uses: ncipollo/release-action@v1 | |
id: create_release | |
with: | |
artifacts: ROSProjectManager-*-*-*.zip |