Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(CI): Test Github Actions on Windows and Macos (Take #2) #14

Merged
merged 13 commits into from
Jul 19, 2024
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
17 changes: 17 additions & 0 deletions .commitlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"extends": [
"@commitlint/config-conventional"
],
"rules": {
"subject-case": [
2,
"always",
[
"sentence-case",
"start-case",
"pascal-case",
"upper-case"
]
]
}
}
6 changes: 6 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# SPDX-FileCopyrightText: 2022 leha-bot and contributors
#
# SPDX-License-Identifier: BSL-1.0 OR BlueOak-1.0.0

# Default assignment
* @leha-bot
8 changes: 8 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,16 @@
# SPDX-License-Identifier: BSL-1.0 OR BlueOak-1.0.0

version: 2

updates:
# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
target-branch: master
groups:
actions-minor:
update-types:
- minor
- patch
108 changes: 108 additions & 0 deletions .github/workflows/build-project.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# SPDX-FileCopyrightText: 2022 leha-bot and contributors
#
# SPDX-License-Identifier: BSL-1.0 OR BlueOak-1.0.0

name: 'Build project'

on:
push:
branches:
- '**'
paths:
- '.github/workflows/**'
- 'include/**'
- 'src/**'
- 'tests/**'
- '**/CMakeLists.txt'
pull_request:
branches:
- 'master'
paths:
- '.github/workflows/**'
- 'include/**'
- 'src/**'
- 'tests/**'
- '**/CMakeLists.txt'

defaults:
run:
shell: sh

jobs:
build:
name: 'Build'

strategy:
matrix:
system:
- windows-2022
- macos-14
- ubuntu-22.04
config:
- Release

# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ${{ matrix.system }}

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Conan
uses: imesense/[email protected]

# Detect the build profile for futher Conan interactions
- name: Detect build profile
run: |
conan profile detect

# Install dependencies in the same build folder as will be used in CMake. This path also will be used for CMake's find_package() mode
# via CMAKE_MODULE_PATH and CMAKE_PREFIX_PATH
- name: Install dependencies
run: |
conan install . \
--build=missing \
-of conan-deps \
-s build_type=${{ matrix.config }}

- name: Set path (Windows)
if: ${{ runner.os == 'Windows' }}
shell: pwsh
run: |
$github_workspace = "${{ github.workspace }}"
$workspace = ($github_workspace -replace '\\','/')
Add-Content -Path $env:GITHUB_ENV -Value "workspace=$workspace"

- name: Set path (macOS/Linux)
if: ${{ runner.os != 'Windows' }}
run: |
export workspace=${{ github.workspace }}
echo "workspace=$workspace" >> $GITHUB_ENV

- name: Configure project
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
# Also set PREFIX and MODULE paths for find_package() via CMAKE_MODULE_PATH and CMAKE_PREFIX_PATH variables.
# See https://cmake.org/cmake/help/latest/command/find_package.html?highlight=find_package for search modes.
run: |
cmake -B ${{ env.workspace }}/build \
-DCMAKE_BUILD_TYPE=${{ matrix.config }} \
-DCMAKE_PREFIX_PATH="${{ env.workspace }}/conan-deps" \
-DCMAKE_MODULE_PATH="${{ env.workspace }}/conan-deps"

- name: Build project
working-directory: ${{ env.workspace }}/build
# Build your program with the given configuration
run: |
cmake --build . --config ${{ matrix.config }}

- name: Test project
working-directory: ${{ env.workspace }}/build
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: |
ctest -C ${{ matrix.config }}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: BSL-1.0 OR BlueOak-1.0.0

name: REUSE Compliance
name: 'Check compliance'

on:
push:
Expand All @@ -14,10 +14,13 @@ on:

jobs:
check:
name: REUSE compliance check
name: 'Check'

runs-on: ubuntu-latest

steps:
- name: Fetching sources
uses: actions/checkout@v4
- name: Checking REUSE compliance
uses: fsfe/reuse-action@v3
- name: Fetching sources
uses: actions/checkout@v4

- name: Check compliance
uses: fsfe/reuse-action@v3
58 changes: 0 additions & 58 deletions .github/workflows/cmake.yml

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,28 @@
#
# SPDX-License-Identifier: BSL-1.0 OR BlueOak-1.0.0

name: commitlint
name: 'Lint commits'

on:
push:
branches:
- '**'
pull_request:
branches: [ master, dev ]
branches:
- master
- dev

jobs:
commitlint:
lint:
name: 'Lint'

runs-on: ubuntu-latest

steps:
- name: Checkout repository
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Commitlint

- name: Lint
uses: remarkablemark/commitlint@v1
4 changes: 4 additions & 0 deletions .reuse/dep5
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,7 @@ Source: https://github.com/leha-bot/std_version
Files: *.md
Copyright: 2022 leha-bot and contributors
License: BSL-1.0 OR BlueOak-1.0.0

Files: *.json
Copyright: 2022 leha-bot and contributors
License: BSL-1.0 OR BlueOak-1.0.0
6 changes: 6 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"dependencies": {
"@commitlint/cli": "latest",
"@commitlint/config-conventional": "latest"
}
}