Skip to content

Build Ubuntu Deb Release #1

Build Ubuntu Deb Release

Build Ubuntu Deb Release #1

Workflow file for this run

name: Build Ubuntu Deb Release
on:
workflow_dispatch:
release:
types: [created]
permissions:
contents: write
jobs:
build:
strategy:
fail-fast: false
matrix:
distro_version: [latest, plucky]
include:
- distro_version: latest
container_image: ubuntu:latest
display_name: Ubuntu LTS (latest)
- distro_version: plucky
container_image: ubuntu:25.04
display_name: Ubuntu 25.04
name: ${{ matrix.display_name }} Package Build
runs-on: ubuntu-latest
container: ${{ matrix.container_image }}
steps:
- name: Install Linux Dependencies
if: runner.os == 'Linux'
run: >
apt-get update && apt-get install -y
build-essential
git
cmake
ninja-build
debhelper
devscripts
jq
lsb-release
libglew-dev
libxerces-c-dev
libpng-dev
swig
bison
flex
libtinygltf-dev
libgdal-dev
libgeotiff-dev
libhidapi-dev
libvtk9-dev
libopenscenegraph-dev
libassimp-dev
libtbb-dev
libjpeg-dev
libtiff-dev
libturbojpeg0-dev
libfftw3-dev
libarchive-dev
libswscale-dev
libavformat-dev
libavutil-dev
libboost-all-dev
libcgal-dev
libtinyxml2-dev
libavcodec-dev
libcfitsio-dev
libsnappy-dev
libproj-dev
libgdal-dev
libeigen3-dev
libsdl2-dev
libblas-dev
libvncserver-dev
libaudiofile-dev
libhdf5-dev
libnetcdf-dev
libnetcdf-c++4-dev
libcgns-dev
libalut-dev
libfreetype-dev
libomp-dev
nlohmann-json3-dev
qt6-base-dev
qt6-tools-dev
qt6-connectivity-dev
qt6-declarative-dev
qt6-multimedia-dev
qt6-networkauth-dev
qt6-quick3d-dev
qt6-sensors-dev
qt6-serialbus-dev
qt6-serialport-dev
qt6-speech-dev
qt6-svg-dev
qt6-virtualkeyboard-dev
qt6-wayland-dev
qt6-webengine-dev
qt6-websockets-dev
qt6-webview-dev
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- name: Add safe directory
run: |
git config --global --add safe.directory /__w/covise/covise
- name: Sync and update submodules recursive
run: |
git submodule sync --recursive
git submodule update --init --recursive
- name: Copy debian dir to root src dir
run: |
cp -r $GITHUB_WORKSPACE/archive/debian $GITHUB_WORKSPACE/
- name: Update changelog with GitHub release info
run: |
# Get the release message (body) and the version from the tag
RELEASE_BODY=$(curl -s -H "Accept: application/vnd.github+json" \
https://api.github.com/repos/${{ github.repository }}/releases/tags/${{ github.ref_name }} \
| jq -r '.body')
VERSION=$(echo "${{ github.ref_name }}" | sed 's/^v//')
# Set maintainer info for the changelog entry
export DEBFULLNAME="${{ github.actor }}"
export DEBEMAIL="${{ github.actor }}@users.noreply.github.com"
dch --newversion "${VERSION}" --distribution "$(lsb_release -c -s)" "${RELEASE_BODY}"
- name: Build deb
run: |
. $GITHUB_WORKSPACE/.covise.sh && dpkg-buildpackage -uc -us -j$(nproc)
- name: Rename Deb
run: |
mv $GITHUB_WORKSPACE/../*.deb "covise-${{ github.ref_name }}-$(lsb_release -c -s).deb"
- name: Release Package
uses: softprops/action-gh-release@v1
with:
files: '*.deb'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}