Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
276b07d
Adding clang-tidy for analyse, linting and security
Matographo Aug 22, 2026
37d0190
adding formatter and formating code
Matographo Aug 22, 2026
eede0de
Adding Coverage
Matographo Aug 22, 2026
b1e6fd4
Update to Prebyte 1.1.1
Matographo Aug 22, 2026
53a3fe3
Adding fuzzer and sanitizer
Matographo Aug 22, 2026
44be6c7
Fixing msan
Matographo Aug 22, 2026
dddc025
Adding more tests
Matographo Aug 22, 2026
cc1b90a
Adding new Tests
Matographo Aug 22, 2026
b7703ac
Adding more tests
Matographo Aug 22, 2026
dcd9d22
Adding Negative Tests
Matographo Aug 22, 2026
cd81266
Adding more tests
Matographo Aug 22, 2026
1fa2ed0
Adding fuzzer tests
Matographo Aug 22, 2026
71da5fd
Adding new seeds for fuzzer
Matographo Aug 22, 2026
8fa63c4
Update Readme
Matographo Aug 22, 2026
9dba44f
Adding new ci and fixing sanitize bugs
Matographo Aug 22, 2026
6c418f5
Fixing ci
Matographo Aug 22, 2026
9f8028d
Try to Fix CI
Matographo Aug 22, 2026
fd0bd2d
Try to fix CI for sanitizer
Matographo Aug 22, 2026
5257f8c
Update for more coverage
Matographo Aug 22, 2026
b3c0c0e
Fixing testing
Matographo Aug 22, 2026
7724f59
Fixing analyse in ci
Matographo Aug 22, 2026
b8e24e4
Fixing errors
Matographo Aug 22, 2026
0d25da6
Fixing failed text
Matographo Aug 22, 2026
ea11fab
Fuu***** fixing
Matographo Aug 22, 2026
4824cc3
Fixing Format
Matographo Aug 22, 2026
f5768f5
Fixing stuff
Matographo Aug 23, 2026
62b1bc9
Fixing ci
Matographo Aug 23, 2026
610391a
Fixing
Matographo Aug 23, 2026
72b7c39
Fixing Security
Matographo Aug 23, 2026
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
11 changes: 11 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
BasedOnStyle: LLVM
IndentWidth: 4
ColumnLimit: 120
BreakBeforeBraces: Attach
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
NamespaceIndentation: None
SortIncludes: CaseSensitive
IncludeBlocks: Regroup
7 changes: 7 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
Checks: '-*'
WarningsAsErrors: '*'
HeaderFilterRegex: '(src/main/(cpp|include)|tests/(support|tempify))/.*'
FormatStyle: none
ExtraArgsBefore:
- '-std=c++23'
141 changes: 140 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: ci
on:
push:
branches:
- "**"
- main
tags:
- "v*"
pull_request:
Expand Down Expand Up @@ -184,6 +184,145 @@ jobs:
dist/*.rqp
if-no-files-found: error

quality-sanitizers:
name: quality-sanitizers
runs-on: ubuntu-24.04
timeout-minutes: 60
env:
CC: clang-18
CXX: clang++-18
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Linux prerequisites
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends ninja-build pkg-config zstd clang-18
sudo ln -sf "$(command -v clang-18)" /usr/local/bin/clang
sudo ln -sf "$(command -v clang++-18)" /usr/local/bin/clang++
echo "/usr/local/bin" >> "$GITHUB_PATH"

- name: Bootstrap vcpkg dependencies
run: |
set -euo pipefail
chmod +x scripts/ci/bootstrap_vcpkg_deps.sh
./scripts/ci/bootstrap_vcpkg_deps.sh asan
# shellcheck disable=SC1091
source build-cmake/.vcpkg-asan.env
echo "VCPKG_ROOT=$VCPKG_ROOT" >> "$GITHUB_ENV"
echo "VCPKG_TARGET_TRIPLET=$VCPKG_TARGET_TRIPLET" >> "$GITHUB_ENV"

- name: Run AddressSanitizer tests
run: make sanitize

- name: Run ThreadSanitizer tests
run: make tsan

quality-fuzz:
name: quality-fuzz
runs-on: ubuntu-24.04
timeout-minutes: 45
env:
CC: clang-18
CXX: clang++-18
TEMPIFY_FUZZ_MAX_TOTAL_TIME: 30
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Linux prerequisites
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends ninja-build pkg-config zstd clang-18
sudo ln -sf "$(command -v clang-18)" /usr/local/bin/clang
sudo ln -sf "$(command -v clang++-18)" /usr/local/bin/clang++
echo "/usr/local/bin" >> "$GITHUB_PATH"

- name: Bootstrap vcpkg dependencies
run: |
set -euo pipefail
chmod +x scripts/ci/bootstrap_vcpkg_deps.sh
./scripts/ci/bootstrap_vcpkg_deps.sh fuzz
# shellcheck disable=SC1091
source build-cmake/.vcpkg-fuzz.env
echo "VCPKG_ROOT=$VCPKG_ROOT" >> "$GITHUB_ENV"
echo "VCPKG_TARGET_TRIPLET=$VCPKG_TARGET_TRIPLET" >> "$GITHUB_ENV"

- name: Run fuzzers
run: make fuzz

- name: Replay fuzz regression corpus
run: make fuzz-regression

quality-coverage:
name: quality-coverage
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Linux prerequisites
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends ninja-build pkg-config zstd g++ python3-pip
python3 -m pip install --break-system-packages 'gcovr>=8.6'

- name: Bootstrap vcpkg dependencies
run: |
set -euo pipefail
chmod +x scripts/ci/bootstrap_vcpkg_deps.sh
./scripts/ci/bootstrap_vcpkg_deps.sh coverage
# shellcheck disable=SC1091
source build-cmake/.vcpkg-coverage.env
echo "VCPKG_ROOT=$VCPKG_ROOT" >> "$GITHUB_ENV"
echo "VCPKG_TARGET_TRIPLET=$VCPKG_TARGET_TRIPLET" >> "$GITHUB_ENV"

- name: Run coverage tests
run: make coverage COVERAGE_MIN_LINE=85
- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: build-cmake/coverage/coverage.xml
if-no-files-found: error

quality-analysis:
name: quality-analysis
runs-on: ubuntu-24.04
timeout-minutes: 45
env:
CC: clang-18
CXX: clang++-18
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Linux prerequisites
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends ninja-build pkg-config zstd clang-18 clang-tidy-18 clang-format-18
sudo ln -sf "$(command -v clang-18)" /usr/local/bin/clang
sudo ln -sf "$(command -v clang++-18)" /usr/local/bin/clang++
echo "/usr/local/bin" >> "$GITHUB_PATH"

- name: Bootstrap vcpkg dependencies
run: |
set -euo pipefail
chmod +x scripts/ci/bootstrap_vcpkg_deps.sh
./scripts/ci/bootstrap_vcpkg_deps.sh asan
# shellcheck disable=SC1091
source build-cmake/.vcpkg-asan.env
echo "VCPKG_ROOT=$VCPKG_ROOT" >> "$GITHUB_ENV"
echo "VCPKG_TARGET_TRIPLET=$VCPKG_TARGET_TRIPLET" >> "$GITHUB_ENV"

- name: Check formatting
run: make format-check

- name: Run static analysis
run: make static-analysis

release:
if: startsWith(github.ref, 'refs/tags/v')
needs: build-test
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@
/compile_commands.json
/scripts/ci/__pycache__/
/tests/test_workspace/
/tests/fault_tolerance/fuzz/corpus/
/build-cmake/
1 change: 1 addition & 0 deletions .reqpack-test/core/install-java-xyz.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ return {
system = "tempify",
flags = {
"data-root=@tmp/store",
"repo=tempify-default|0|.reqpack-test/fixtures/catalogs/java_xyz/templates.json",
},
packages = {
{ name = "java-xyz" }
Expand Down
17 changes: 17 additions & 0 deletions .reqpack-test/fixtures/catalogs/java_xyz/templates.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"schemaVersion": 1,
"templates": [
{
"id": "java-xyz",
"name": "Java XYZ",
"description": "Small Java starter template",
"version": "0.1.0",
"tags": ["java", "starter"],
"source": {
"type": "git",
"url": "../../repos/java_xyz",
"subdir": ""
}
}
]
}
6 changes: 6 additions & 0 deletions .reqpack-test/fixtures/repos/java_xyz/files/README.md.pbt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# {{ project_name }}

Generated from Tempify `java-xyz` starter template.

- Project slug: `{{ project_slug }}`
- Java package: `{{ package_name }}`
27 changes: 27 additions & 0 deletions .reqpack-test/fixtures/repos/java_xyz/questions.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
return {
order = { "Project" },
groups = {
Project = {
{
key = "project_name",
type = "string",
prompt = "Project name",
default = "Java XYZ App",
},
{
key = "project_slug",
type = "string",
prompt = "Project slug",
default = function(ctx)
return slugify(ctx.values.project_name or "java-xyz-app")
end,
},
{
key = "package_name",
type = "string",
prompt = "Java package",
default = "com.example.app",
},
},
},
}
11 changes: 11 additions & 0 deletions .reqpack-test/fixtures/repos/java_xyz/template.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
return {
id = "java-xyz",
name = "Java XYZ",
version = "0.1.0",
description = "Small Java starter template",
source_dir = "files",
output = {
path = "{{ project_slug }}",
overwrite = false,
},
}
Loading
Loading