-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
workflows: update build and packaging to fix (#10)
* workflows: update build and packaging to fix Signed-off-by: Patrick Stephens <[email protected]> * workflows: fix up linting Signed-off-by: Patrick Stephens <[email protected]> --------- Signed-off-by: Patrick Stephens <[email protected]>
- Loading branch information
1 parent
1fc7db1
commit 957abc2
Showing
8 changed files
with
221 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
name: Build packages for master or a tagged release | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
# Any tag starting with 'v' | ||
tags: | ||
- 'v*' | ||
workflow_dispatch: | ||
|
||
jobs: | ||
build-distro-packages-arm64: | ||
runs-on: ubuntu-latest | ||
name: build arm64 packages | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
format: [ rpm, deb ] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
|
||
- uses: uraimo/[email protected] | ||
name: Build the ${{matrix.format}} packages | ||
with: | ||
arch: aarch64 | ||
distro: ubuntu_latest | ||
run: | | ||
apt-get update && \ | ||
apt-get install -y --no-install-recommends \ | ||
build-essential \ | ||
cmake \ | ||
file \ | ||
rpm \ | ||
make | ||
cmake . | ||
echo ${{ matrix.format }} | awk '{print toupper($0)}' | xargs -I{} cpack -G {} | ||
- name: Store the master package artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ matrix.format }}-arm64 | ||
path: | | ||
./*.${{matrix.format}} | ||
build-distro-packages-amd64: | ||
name: build amd64 packages | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
format: [ rpm, deb ] | ||
runs-on: [ ubuntu-latest ] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
|
||
- name: Build the ${{matrix.format}} packages | ||
run: | | ||
cmake . | ||
echo ${{ matrix.format }} | awk '{print toupper($0)}' | xargs -I{} cpack -G {} | ||
- name: Store the master package artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ matrix.format }}-amd64 | ||
path: | | ||
./*.${{matrix.format}} | ||
build-macos-packages-arm64: | ||
name: build macOS Apple Silicon packages | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
config: | ||
- format: productbuild | ||
arch: apple | ||
ext: pkg | ||
runs-on: macos-14 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
|
||
- name: Build the ${{matrix.config.format}} packages | ||
run: | | ||
cmake . -DCPACK_GENERATOR=${{ matrix.config.format }} | ||
echo ${{ matrix.config.format }} | xargs -I{} cpack -G {} | ||
- name: Store the master package artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ matrix.config.format }}-${{matrix.config.arch}} | ||
path: | | ||
./*-${{matrix.config.arch}}.${{matrix.config.ext}} | ||
release: | ||
name: Create release and upload packages | ||
needs: | ||
- build-distro-packages-amd64 | ||
- build-distro-packages-arm64 | ||
- build-macos-packages-arm64 | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
steps: | ||
- name: Download all artefacts | ||
uses: actions/download-artifact@v4 | ||
with: | ||
path: artifacts/ | ||
|
||
- name: Display structure of downloaded files | ||
run: ls -R | ||
working-directory: artifacts | ||
shell: bash | ||
|
||
- name: Unstable release on push to master to make it easier to download | ||
uses: pyTooling/Actions/releaser@r0 | ||
continue-on-error: true | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
tag: 'unstable' | ||
rm: true | ||
files: | | ||
artifacts/**/* | ||
- name: Release on tag | ||
uses: softprops/action-gh-release@v2 | ||
if: startsWith(github.ref, 'refs/tags/') | ||
with: | ||
generate_release_notes: true | ||
files: | | ||
artifacts/**/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
style "#{File.dirname(__FILE__)}/markdownlint.rb" |
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# Global Owners | ||
# ------------- | ||
* @edsiper @leonardo-albertovich | ||
|
||
# CI | ||
# ------------------------- | ||
/.github/ @niedbalski @patrick-stephens @celalettin1286 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,48 +1,49 @@ | ||
# sanitizers-cmake | ||
|
||
[![](https://img.shields.io/github/issues-raw/arsenm/sanitizers-cmake.svg?style=flat-square)](https://github.com/arsenm/sanitizers-cmake/issues) | ||
[![Issues](https://img.shields.io/github/issues-raw/arsenm/sanitizers-cmake.svg?style=flat-square)](https://github.com/arsenm/sanitizers-cmake/issues) | ||
[![MIT](http://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](LICENSE) | ||
|
||
CMake module to enable sanitizers for binary targets. | ||
|
||
|
||
## Include into your project | ||
|
||
To use [FindSanitizers.cmake](cmake/FindSanitizers.cmake), simply add this repository as git submodule into your own repository | ||
```Shell | ||
|
||
```shell | ||
mkdir externals | ||
git submodule add [email protected]:arsenm/sanitizers-cmake.git externals/sanitizers-cmake | ||
``` | ||
|
||
and adding ```externals/sanitizers-cmake/cmake``` to your ```CMAKE_MODULE_PATH``` | ||
|
||
```CMake | ||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/externals/sanitizers-cmake/cmake" ${CMAKE_MODULE_PATH}) | ||
``` | ||
|
||
If you don't use git or dislike submodules you can copy the files in [cmake directory](cmake) into your repository. *Be careful and keep updates in mind!* | ||
|
||
Now you can simply run ```find_package``` in your CMake files: | ||
|
||
```CMake | ||
find_package(Sanitizers) | ||
``` | ||
|
||
|
||
## Usage | ||
|
||
You can enable the sanitizers with ``SANITIZE_ADDRESS``, ``SANITIZE_MEMORY``, ``SANITIZE_THREAD`` or ``SANITIZE_UNDEFINED`` options in your CMake configuration. You can do this by passing e.g. ``-DSANITIZE_ADDRESS=On`` on your command line or with your graphical interface. | ||
|
||
If sanitizers are supported by your compiler, the specified targets will be build with sanitizer support. If your compiler has no sanitizing capabilities (I asume intel compiler doesn't) you'll get a warning but CMake will continue processing and sanitizing will simply just be ignored. | ||
|
||
#### Compiler issues | ||
## Compiler issues | ||
|
||
Different compilers may be using different implementations for sanitizers. If you'll try to sanitize targets with C and Fortran code but don't use gcc & gfortran but clang & gfortran, this will cause linking problems. To avoid this, such problems will be detected and sanitizing will be disabled for these targets. | ||
|
||
Even C only targets may cause problems in certain situations. Some problems have been seen with AddressSanitizer for preloading or dynamic linking. In such cases you may try the ``SANITIZE_LINK_STATIC`` to link sanitizers for gcc static. | ||
|
||
|
||
|
||
## Build targets with sanitizer support | ||
|
||
To enable sanitizer support you simply have to add ``add_sanitizers(<TARGET>)`` after defining your target. To provide a sanitizer blacklist file you can use the ``sanitizer_add_blacklist_file(<FILE>)`` function: | ||
|
||
```CMake | ||
find_package(Sanitizers) | ||
|
@@ -59,15 +60,13 @@ add_sanitizers(some_lib) | |
|
||
The sanitizers check your program, while it's running. In some situations (e.g. LD_PRELOAD your target) it might be required to preload the used AddressSanitizer library first. In this case you may use the ``asan-wrapper`` script defined in ``ASan_WRAPPER`` variable to execute your application with ``${ASan_WRAPPER} myexe arg1 ...``. | ||
|
||
|
||
## Contribute | ||
|
||
Anyone is welcome to contribute. Simply fork this repository, make your changes **in an own branch** and create a pull-request for your change. Please do only one change per pull-request. | ||
|
||
You found a bug? Please fill out an [issue](https://github.com/arsenm/sanitizers-cmake/issues) and include any data to reproduce the bug. | ||
|
||
|
||
#### Contributors | ||
## Contributors | ||
|
||
* [Matt Arsenault](https://github.com/arsenm) | ||
* [Alexander Haase](https://github.com/alehaa) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
#!/usr/bin/ruby | ||
|
||
# Enable all rules by default | ||
all | ||
|
||
# Extend line length, since each sentence should be on a separate line. | ||
rule 'MD013', :line_length => 99999, :ignore_code_blocks => true | ||
|
||
# Allow in-line HTML | ||
exclude_rule 'MD033' | ||
|
||
# Nested lists should be indented with two spaces. | ||
rule 'MD007', :indent => 2 | ||
|
||
# Bash defaulting confuses this and now way to ignore code blocks | ||
exclude_rule 'MD029' |