Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions .github/workflows/release_deb.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Prepares a deb package of Storm
name: Release deb package

on:
# needed to trigger the workflow manually
workflow_dispatch:

env:
# GitHub runners currently have 4 cores
NR_JOBS: "4"

jobs:
debian:
name: Debian package on ${{ matrix.distro.name }}-${{ matrix.platform.name }}
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
distro:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is ubuntu:rolling the same as ubuntu 25.10 right now?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

26.04 will be out on April 23rd

- {name: "debian:12",
tag: "debian-12",
build_type: "Release"
}
- {name: "debian:13",
tag: "debian-13",
build_type: "Release"
}
- {name: "ubuntu:24.04",
tag: "ubuntu-24.04",
build_type: "Release"
}
- {name: "ubuntu:rolling",
tag: "latest",
build_type: "Release"
}
platform:
- {name: amd64, runner: "ubuntu-latest"}
- {name: arm64, runner: "ubuntu-24.04-arm"}
fail-fast: false
steps:
- name: Git clone
uses: actions/checkout@v6
- name: Build storm from Dockerfile
run: |
docker build -t movesrwth/storm:ci . \
--build-arg BASE_IMAGE=movesrwth/storm-basesystem:${{ matrix.distro.tag }} \
--build-arg build_type="${{ matrix.distro.build_type }}" \
--build-arg carl_tag="master" \
--build-arg cmake_args="-DSTORM_BUILD_TESTS=OFF" \
--build-arg no_threads=${NR_JOBS}
# Omitting arguments developer, disable_*, cln_exact, cln_ratfunc, all_sanitizers
- name: Run Docker
run: docker run -d -it --name ci movesrwth/storm:ci
- name: Create package
run: docker exec ci bash -c "cd /opt/storm/build; make package"
- name: Copy package
run: |
docker exec ci bash -c "mkdir /opt/package; cp /opt/storm/build/*.deb /opt/package/"
docker cp ci:/opt/package .
- uses: actions/upload-artifact@v6
with:
name: storm-deb-${{ matrix.distro.tag }}-${{ matrix.platform.name }}
path: ./package/*.deb
- name: Test package
run: |
docker run -d -it --name ci-test ${{ matrix.distro.name }}
docker cp package/*.deb ci-test:/opt/
docker exec ci-test bash -c "apt-get update; apt-get install -y /opt/*.deb"
docker exec ci-test bash -c "storm --version"
- name: Build starter project using Storm package
run: |
docker exec ci-test bash -c "apt-get install -y build-essential ca-certificates cmake git"
docker exec ci-test bash -c "git clone https://github.com/stormchecker/storm-project-starter-cpp /opt/storm-starter"
docker exec ci-test bash -c "mkdir -p /opt/storm-starter/build; cd /opt/storm-starter/build; cmake -DNEVER_FETCH_STORM=TRUE .."
docker exec ci-test bash -c "cd /opt/storm-starter/build; make -j ${NR_JOBS}"
docker exec ci-test bash -c "/opt/storm-starter/build/bin/starter-project /opt/storm-starter/examples/die.pm /opt/storm-starter/examples/die.pctl"
13 changes: 8 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@ if (NOT ${CMAKE_VERSION} VERSION_LESS 3.24)
endif()

# Set project name
project (storm
LANGUAGES CXX C
VERSION 1.12.0.1)
# Version x.y.z.1 should be read as: This is an updated version of x.y.z that has not been released as x.y.z+1 yet.
project(storm
VERSION 1.12.0.1
# Version x.y.z.1 should be read as: This is an updated version of x.y.z that has not been released as x.y.z+1 yet.
LANGUAGES CXX C
DESCRIPTION "Storm - A Modern Probabilistic Model Checker"
HOMEPAGE_URL "https://www.stormchecker.org"
)

# Add the resources/cmake folder to Module Search Path
set(STORM_CMAKE_FIND_MODULES "${PROJECT_SOURCE_DIR}/resources/cmake/find_modules")
Expand Down Expand Up @@ -533,4 +536,4 @@ install(FILES ${PROJECT_BINARY_DIR}/stormConfig.cmake.install DESTINATION ${STOR
install(FILES ${PROJECT_BINARY_DIR}/stormConfigVersion.cmake DESTINATION ${STORM_CMAKE_INSTALL_DIR})
install(EXPORT storm_Targets FILE stormTargets.cmake DESTINATION ${STORM_CMAKE_INSTALL_DIR})

include(StormCPackConfig.cmake)
include(${PROJECT_SOURCE_DIR}/resources/cmake/stormCPackConfig.cmake)
31 changes: 0 additions & 31 deletions StormCPackConfig.cmake

This file was deleted.

27 changes: 27 additions & 0 deletions resources/cmake/stormCPackConfig.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
include(InstallRequiredSystemLibraries)

### General settings
# General project information is taken from the project() variables
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_VERSION ${CMAKE_PROJECT_VERSION})
set(CPACK_PACKAGE_VERSION_MAJOR ${CMAKE_PROJECT_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${CMAKE_PROJECT_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${CMAKE_PROJECT_VERSION_PATCH})
set(CPACK_PACKAGE_VENDOR "Storm Developers")
set(CPACK_PACKAGE_CONTACT "support@stormchecker.org")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/README.md")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")

set(CPACK_GENERATOR "DEB")

### Source package configuration
# The support is limited and we recommend to use "git archive" instead
set(CPACK_SOURCE_GENERATOR "TGZ")
Comment thread
volkm marked this conversation as resolved.
set(CPACK_SOURCE_IGNORE_FILES "~$;[.]swp$;/[.]git/;.gitignore;/build/;tags;cscope.*")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-src")

# Debian package
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libarchive-dev, libboost-dev, libcln-dev, libginac-dev, libglpk-dev, libgmp-dev, libxerces-c-dev, libz3-dev")

include(CPack)
Loading