generate Debian package #189
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: 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 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 }}" -DBUILD_ROSTERMINAL=OFF | |
cmake --build build --target package | |
- 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 | |
- name: install Qt Creator DEB package | |
if: runner.os == 'Linux' | |
run: | | |
./packaging/qtcreator_deb_install.sh | |
- name: generate plugin DEB package | |
if: runner.os == 'Linux' | |
run: | | |
cd build | |
cpack -G DEB | |
- name: upload artifact (DEB) | |
if: runner.os == 'Linux' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: plugin_archive_artifact_${{ matrix.config.name }}_deb | |
if-no-files-found: error | |
path: | | |
./build/ROSProjectManager-*-*-*.deb | |
./build/ROSProjectManager-*-*-*.ddeb | |
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,ROSProjectManager-*-*-*.deb |