diff --git a/.travis.yml b/.travis.yml index 65fdd44..7bf95f4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,19 @@ language: c + compiler: - gcc - clang + +addons: + apt: + packages: + - build-essential + - cmake + - rpm + - git + - gdb + - valgrind + script: ./ci/run_build.sh sudo: false @@ -12,6 +24,8 @@ deploy: secure: Yk90ANpSPv1iJy8QDXCPwfaSmEr/WIJ3bzhQ6X8JvZjfrwTosbh0HrUzQyeac3nyvNwj7YJRssolOFc21IBKPpCFTZqYxSkuLPU6ysG4HGHgN6YJhOMm4mG4KKJ6741q3DJendhZpalBhCEi+NcZK/PCSD97Vl4OqRjBUged0fs= file: - "./dist/tini" + - "./dist/tini_0.3.4.deb" + - "./dist/tini_0.3.4.rpm" on: repo: krallin/tini tags: true diff --git a/CMakeLists.txt b/CMakeLists.txt index 652a4d6..eedcff9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,14 +21,44 @@ configure_file ( ) configure_file ( - "${PROJECT_SOURCE_DIR}/README.md.in" + "${PROJECT_SOURCE_DIR}/tpl/README.md.in" "${PROJECT_SOURCE_DIR}/README.md" @ONLY ) +configure_file ( + "${PROJECT_SOURCE_DIR}/tpl/travis.yml.tpl" + "${PROJECT_SOURCE_DIR}/.travis.yml" + @ONLY +) + include_directories ("${PROJECT_BINARY_DIR}") add_executable (tini src/tini.c) # Installation install (TARGETS tini DESTINATION bin) + +# Packaging +include (InstallRequiredSystemLibraries) +set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "A tiny but valid init process for containers") +set (CPACK_PACKAGE_VENDOR "Thomas Orozco") +set (CPACK_PACKAGE_CONTACT "thomas@orozco.fr") +set (CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") +set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") +set (CPACK_PACKAGE_VERSION_MAJOR "${tini_VERSION_MAJOR}") +set (CPACK_PACKAGE_VERSION_MINOR "${tini_VERSION_MINOR}") +set (CPACK_PACKAGE_VERSION_PATCH "${tini_VERSION_PATCH}") +set (CPACK_PACKAGE_EXECUTABLES "tini") +set (CPACK_PACKAGE_NAME "tini") +set (CPACK_PACKAGE_FILE_NAME "tini_${tini_VERSION_MAJOR}.${tini_VERSION_MINOR}.${tini_VERSION_PATCH}") +set (CPACK_PACKAGE_VERSION "${tini_VERSION_MAJOR}.${tini_VERSION_MINOR}.${tini_VERSION_PATCH}") + +set (CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") # TODO +set (CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.4)") + +set (CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64") + +set (CPACK_GENERATOR "DEB" "RPM") + +include (CPack) diff --git a/ci/run_build.sh b/ci/run_build.sh index cd7d9fc..e5012e2 100755 --- a/ci/run_build.sh +++ b/ci/run_build.sh @@ -13,6 +13,7 @@ cmake -B"${BUILD_DIR}" -H"${SOURCE_DIR}" pushd "${BUILD_DIR}" make clean make +make package popd @@ -28,4 +29,4 @@ fi # Place files mkdir -p "${DIST_DIR}" -cp "${BUILD_DIR}"/tini "${DIST_DIR}" +cp "${BUILD_DIR}"/tini{,*.rpm,*deb} "${DIST_DIR}" diff --git a/README.md.in b/tpl/README.md.in similarity index 100% rename from README.md.in rename to tpl/README.md.in diff --git a/tpl/travis.yml.tpl b/tpl/travis.yml.tpl new file mode 100644 index 0000000..00a5922 --- /dev/null +++ b/tpl/travis.yml.tpl @@ -0,0 +1,32 @@ +language: c + +compiler: +- gcc +- clang + +addons: + apt: + packages: + - build-essential + - cmake + - rpm + - git + - gdb + - valgrind + +script: ./ci/run_build.sh + +sudo: false + +deploy: + provider: releases + api_key: + secure: Yk90ANpSPv1iJy8QDXCPwfaSmEr/WIJ3bzhQ6X8JvZjfrwTosbh0HrUzQyeac3nyvNwj7YJRssolOFc21IBKPpCFTZqYxSkuLPU6ysG4HGHgN6YJhOMm4mG4KKJ6741q3DJendhZpalBhCEi+NcZK/PCSD97Vl4OqRjBUged0fs= + file: + - "./dist/tini" + - "./dist/tini_@tini_VERSION_MAJOR@.@tini_VERSION_MINOR@.@tini_VERSION_PATCH@.deb" + - "./dist/tini_@tini_VERSION_MAJOR@.@tini_VERSION_MINOR@.@tini_VERSION_PATCH@.rpm" + on: + repo: krallin/tini + tags: true + condition: "$CC = gcc"