Skip to content

Commit 9eb999f

Browse files
committed
Prepare basic github action skeleton
Signed-off-by: Cristian Le <cristian.le@mpsd.mpg.de>
1 parent 678c234 commit 9eb999f

File tree

8 files changed

+157
-15
lines changed

8 files changed

+157
-15
lines changed

.github/release.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
changelog:
2+
categories:
3+
- title: 🛠 Breaking Changes
4+
labels:
5+
# Should automatically detect major change
6+
- Semver-Major
7+
- breaking-changes
8+
- title: 🎉 New Features
9+
labels:
10+
- new-feature
11+
- enhancement
12+
- title: ⚠️ Deprecation
13+
labels:
14+
- deprecation
15+
- title: 🐞 Bug fixes
16+
labels:
17+
- bug
18+
- title: 📔 Documentation
19+
labels:
20+
- documentation
21+
- title: Other changes
22+
labels:
23+
- '*'

.github/workflows/release.yaml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: release
2+
run-name: Prepare release
3+
4+
on:
5+
push:
6+
tags:
7+
- "v[0-9]+.[0-9]+.[0-9]+"
8+
- "v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+"
9+
10+
jobs:
11+
tests:
12+
uses: ./.github/workflows/test.yaml
13+
secrets: inherit
14+
release:
15+
needs: [ tests ]
16+
name: Create release
17+
runs-on: ubuntu-latest
18+
permissions:
19+
contents: write
20+
steps:
21+
- uses: actions/checkout@v3
22+
- uses: softprops/action-gh-release@v1
23+
with:
24+
name: CMakeExtraUtils ${{ github.ref_name }}
25+
draft: true
26+
prerelease: ${{ contains(github.ref, 'rc') }}
27+
generate_release_notes: true

.github/workflows/test.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: test
2+
run-name: Run tests
3+
4+
on:
5+
push:
6+
branches: [ main ]
7+
pull_request:
8+
branches: [ main ]
9+
workflow_call:
10+
11+
jobs:
12+
pre-commit:
13+
name: Check pre-commit
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v3
17+
- uses: actions/setup-python@v4
18+
- uses: pre-commit/action@v3.0.0
19+
20+
ctest:
21+
runs-on: ubuntu-latest
22+
needs: [ pre-commit ]
23+
steps:
24+
- uses: actions/checkout@v3
25+
with:
26+
fetch-depth: 0
27+
- uses: lukka/get-cmake@latest
28+
- name: Run CMake configuration for ${{ matrix.toolchain }} toolchain
29+
uses: lukka/run-cmake@v10.3
30+
with:
31+
workflowPreset: default

.packit.yaml

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,15 @@ jobs:
6666
# - epel-9-x86_64
6767
# - fedora-development-aarch64
6868
# - fedora-latest-aarch64
69-
# - epel-9-aarch64
70-
- job: copr_build
71-
trigger: release
72-
owner: "@scikit-build"
73-
project: releases
74-
targets:
75-
- fedora-development-x86_64
76-
- fedora-latest-x86_64
77-
- epel-9-x86_64
78-
- fedora-development-aarch64
79-
- fedora-latest-aarch64
80-
- epel-9-aarch64
69+
# - job: copr_build
70+
# trigger: release
71+
# owner: lecris
72+
# project: releases
73+
# targets:
74+
# - fedora-development-x86_64
75+
# - fedora-latest-x86_64
76+
# - fedora-development-aarch64
77+
# - fedora-latest-aarch64
8178
## TODO: Disabled until released on src.fedoraproject.org
8279
# - job: propose_downstream
8380
# trigger: release

CMakeLists.txt

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,19 @@ project(CMakeExtraUtils
1414
VERSION ${PROJECT_VERSION}
1515
LANGUAGES NONE)
1616

17-
# Install this package for find_package or propagate variables for FetchContent
18-
if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
17+
# Basic options
18+
option(CMAKEEXTRAUTILS_INSTALL "CMakeExtraUtils: Install files" ${PROJECT_IS_TOP_LEVEL})
19+
option(CMAKEEXTRAUTILS_TESTS "CMakeExtraUtils: Build unit tests" ${PROJECT_IS_TOP_LEVEL})
20+
21+
# Tests
22+
if (CMAKEEXTRAUTILS_TESTS)
23+
enable_testing()
24+
add_subdirectory(test)
25+
endif ()
26+
27+
28+
# Install package files
29+
if (CMAKEEXTRAUTILS_INSTALL)
1930
# Install for find_package
2031
# At least one language has to be defined for GNUInstallDirs
2132
enable_language(CXX)
@@ -44,7 +55,10 @@ if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
4455
cmake/PackageComps.cmake
4556
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CMakeExtraUtils
4657
)
47-
else ()
58+
endif ()
59+
60+
# Make project available for FetchContent
61+
if (NOT PROJECT_IS_TOP_LEVEL)
4862
# Propagate variables for FetchContent
4963
# All variables have to be consistent with CMakeExtraUtilsConfig.cmake
5064
if (CMAKE_VERSION VERSION_LESS 3.25)

CMakePresets.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"version": 6,
3+
"cmakeMinimumRequired": {
4+
"major": 3,
5+
"minor": 25,
6+
"patch": 0
7+
},
8+
"include": [
9+
"cmake/CMakePresets-defaults.json"
10+
]
11+
}

cmake/CMakePresets-defaults.json

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"version": 6,
3+
"configurePresets": [
4+
{
5+
"name": "default",
6+
"displayName": "Default configuration preset",
7+
"binaryDir": "cmake-build-release",
8+
"cacheVariables": {
9+
"CMAKE_BUILD_TYPE": {
10+
"type": "STRING",
11+
"value": "Release"
12+
}
13+
}
14+
}
15+
],
16+
"testPresets": [
17+
{
18+
"name": "default",
19+
"displayName": "Default test preset",
20+
"configurePreset": "default"
21+
}
22+
],
23+
"workflowPresets": [
24+
{
25+
"name": "default",
26+
"displayName": "Default workflow",
27+
"steps": [
28+
{
29+
"type": "configure",
30+
"name": "default"
31+
},
32+
{
33+
"type": "test",
34+
"name": "default"
35+
}
36+
]
37+
}
38+
]
39+
}

test/CMakeLists.txt

Whitespace-only changes.

0 commit comments

Comments
 (0)