Skip to content

generate Debian package #192

generate Debian package

generate Debian package #192

Workflow file for this run

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, build: "RelWithDebInfo" }
- { name: "Windows", os: windows-latest, build: "Release" }
- { name: "macOS", os: macos-14, build: "Release" }
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=${{ matrix.config.build }} -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