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

ceedling 1.0.0 release candidate #739

Open
wants to merge 806 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
806 commits
Select commit Hold shift + click to select a range
1eaa93b
👷 New release upload
mkarlesky May 17, 2024
0172f5f
👷 Fixed workflow YAML
mkarlesky May 17, 2024
cc9b35e
🐛 Fixed Ruby syntax for LogLabels constants
mkarlesky May 17, 2024
59f8556
👷 Disabled new pre-release build experiment
mkarlesky May 17, 2024
177c6a2
🔥 Removed unnecessary :stderr_redirect
mkarlesky May 17, 2024
6d7bae2
📝 Tool defintion documentation updates
mkarlesky May 17, 2024
4c9e61a
♻️ Began refactoring of backtrace functionality
mkarlesky May 17, 2024
78071b4
📝 Backtrace documentation
mkarlesky May 17, 2024
1f99b50
🔥 Removed :cmdline_args references
mkarlesky May 17, 2024
5bf75f1
✅ Fixed (some?) tests
mkarlesky May 18, 2024
0897bfc
🔧 Added explicit encoding needed by Ruby
mkarlesky May 18, 2024
e74d45c
✅ Fixed crash testing expectation
mkarlesky May 18, 2024
ee00c88
🐛 Fixed test runner generation cmdline args
mkarlesky May 18, 2024
90935a1
🐛 Fixes from Issue #860 and PR #777
mkarlesky May 18, 2024
a703f7a
🚸 :simple option for backtrace not yet functional
mkarlesky May 18, 2024
0aab425
🐛 Removed problematic explicit encoding
mkarlesky May 18, 2024
6615711
✅ Fixed mysteriously broken tests
mkarlesky May 19, 2024
7e923d4
🐛 Restored :unity & :test_runner defines merge
mkarlesky May 19, 2024
a182262
👷 Removed temporary dev/ CI trigger
mkarlesky May 19, 2024
2aaf256
Merge branch 'dev/windows_build_plus_segfault_handling_improvements' …
mkarlesky May 19, 2024
4b2dbd3
Make tests portable again (and take a step towards future flexible te…
mvandervoord May 20, 2024
7ce8c3b
✨ Ruby string replacement for :defines & :flags
mkarlesky May 23, 2024
8ce9e39
✨ Inline Ruby string expansion for mixins
mkarlesky May 23, 2024
56696c2
📝 Inline Ruby string exansion documentation
mkarlesky May 23, 2024
5d68f3d
📝 Inline Ruby string expansion documentation
mkarlesky May 23, 2024
d5e2776
Merge branch 'test/flags_defines_string_replacement' into test/ceedli…
mkarlesky May 23, 2024
7689d25
📝 Small documentation update
mkarlesky May 23, 2024
315da74
📄 Added DIY license file
mkarlesky May 24, 2024
12d258b
💡 TODOs for restoring :abort_on_uncovered
mkarlesky May 24, 2024
d08ab7c
📝 Small clarifications
mkarlesky May 24, 2024
fbe8298
📝 Documentation revisions and additions
mkarlesky May 24, 2024
8cab697
remove redundant project.yml file and continue settings arguments we …
mvandervoord May 27, 2024
fbf1b53
👷 Fixed task naming
mkarlesky May 31, 2024
a34d997
💡 Fixed comment spacing
mkarlesky May 31, 2024
391e23c
🎨 Better code layout; removed unnecessary array
mkarlesky May 31, 2024
ff955e9
🔧 Added and improved dependencies tools
mkarlesky May 31, 2024
b548d88
📝 Dependencies plugin fixes & clarifications
mkarlesky May 31, 2024
3ce1ae4
🐛 Removed unnecessary exception handling
mkarlesky May 31, 2024
0e4b58c
🐛 stderr redirect is now optional
mkarlesky May 31, 2024
7fb3165
🐛
mkarlesky May 31, 2024
b1df526
✨ Dependencies plugin improvements
mkarlesky May 31, 2024
a06c3c2
Merge branch 'test/1_0_0/dependencies_plugin_improvements' into test/…
mkarlesky May 31, 2024
8029299
📝 Added usage & limits to build directive macros
mkarlesky May 31, 2024
1e2cc59
📝 Added notes on vendored licenses & docs
mkarlesky May 31, 2024
e1ede8b
✨ Added `—version` and `-v` CLI handling
mkarlesky Jun 1, 2024
1112bef
📝 More better flow for TEST_INCLUDE_PATH()
mkarlesky Jun 1, 2024
6dfb51a
🔥 Disabled Bullseye plugin with error message
mkarlesky Jun 1, 2024
ef02690
:memo: Added Thank-You section for all our wonderful contributors.
mvandervoord Jun 2, 2024
fa68e3c
Fix filepath expansion in assemble_mixins().
deltalejo Jun 9, 2024
12cd524
Merge pull request #897 from deltalejo/fix/mixins
mkarlesky Jun 10, 2024
eb427fe
📝 Noted :cmdline_args now automatically set
mkarlesky Jun 10, 2024
113b659
♻️ More better tool exception messages
mkarlesky Jun 10, 2024
84190ee
📝 TODO comment
mkarlesky Jun 10, 2024
50dc298
♻️ Forgot exception handling change commit
mkarlesky Jun 10, 2024
fda4457
♻️ Reorganized test context extraction
mkarlesky Jun 10, 2024
da877ca
✨ Test case debug logging
mkarlesky Jun 10, 2024
f827ed7
⚡️ Consolidated file reads & consistent names
mkarlesky Jun 11, 2024
d3e755a
✨ First working version of :simple backtrace
mkarlesky Jun 11, 2024
db93eab
♻️ Improved :simple backtrace
mkarlesky Jun 11, 2024
4666dde
🐛 Fixed search-and-replace bug
mkarlesky Jun 11, 2024
3dd9315
✅ Fixed broken tests
mkarlesky Jun 11, 2024
6d508d3
♻️ Began simplifying & robustifying :gdb backtrace
mkarlesky Jun 11, 2024
fdaf29d
📝 Updated backtrace options documentation
mkarlesky Jun 12, 2024
1e189b3
✅ Fixed test broken due to dependency injection
mkarlesky Jun 12, 2024
cacb961
♻️ More better backtrace
mkarlesky Jun 12, 2024
3289b80
Fix command line mixins merging.
deltalejo Jun 12, 2024
8ab7d2e
📝 Backtrace documentation updates
mkarlesky Jun 12, 2024
bcd6772
✅ Fixed tests for refactoring & exceptions
mkarlesky Jun 12, 2024
0dfbabc
✨ Added multiline failure message reporting
mkarlesky Jun 12, 2024
2e43606
♻️ Improved organization; more complete logic
mkarlesky Jun 12, 2024
70439bf
Merge pull request #898 from deltalejo/fix/mixins
mkarlesky Jun 12, 2024
e9626be
🐛 Removed freeze-related problems
mkarlesky Jun 13, 2024
3ee047b
🐛 Fixed problematic comment line
mkarlesky Jun 13, 2024
cc0ad41
♻️ More better gdb execution
mkarlesky Jun 13, 2024
a6c2a71
Merge branch 'test/1_0_0/context_extraction_and_backtrace_improvement…
mkarlesky Jun 13, 2024
d610f57
🎨 Made code intent clearer
mkarlesky Jun 13, 2024
96f2127
✅ Fixed test to reflect bug fix
mkarlesky Jun 13, 2024
1d0c799
🐛 Proper defaults for gdb report extraction
mkarlesky Jun 13, 2024
963d972
🐛 Verbosity level typo fixed
mkarlesky Jun 13, 2024
ac3b515
📝 Backtrace feature sample output
mkarlesky Jun 13, 2024
75698bd
📝 Backtrace docs tweak
mkarlesky Jun 13, 2024
92aef70
Merge branch 'test/ceedling_0_32_rc' into fix/tools-array
deltalejo Jun 14, 2024
bcaff8f
Add mention to tools array usage.
deltalejo Jun 14, 2024
619a8be
Load configuration from :command_hooks section and perform extra vali…
deltalejo Jun 17, 2024
a13525a
Add notes on Command Hooks plugin.
deltalejo Jun 17, 2024
b508885
Change some error messages.
deltalejo Jun 17, 2024
7dc509d
♻️ More better config set up ordering
mkarlesky Jun 19, 2024
d419df4
✨ Added obnoxious & debug logging to config setup
mkarlesky Jun 19, 2024
2bfbef0
✅ Test updates
mkarlesky Jun 19, 2024
a2c159b
📝 Updates to config & defaults processing order
mkarlesky Jun 19, 2024
7dd8bb5
📝 Added logging decorators example
mkarlesky Jun 20, 2024
7865b0f
✨ Completed Setupinator-based logging
mkarlesky Jun 20, 2024
25b381a
Merge branch 'test/1_0_0/more_better_config_setup_PR_818' into test/c…
mkarlesky Jun 20, 2024
47e2a57
🐛 Fixed refactoring bug
mkarlesky Jun 20, 2024
b70718b
Merge branch 'test/ceedling_0_32_rc' into fix/tools-array
deltalejo Jun 22, 2024
b1135f3
Update project.yml samples.
deltalejo Jun 22, 2024
1d305bc
💡 Comment and white space updates
mkarlesky Jun 24, 2024
7a8ea1e
🐛 Added protection for mocks enabled
mkarlesky Jun 24, 2024
eeb6cd8
🐛 Removed protentially problematic build path
mkarlesky Jun 24, 2024
e0b46d4
🐛 More better default values
mkarlesky Jun 24, 2024
09c8d55
🐛 Fixed mocks & plugin handling
mkarlesky Jun 24, 2024
101f20b
Merge pull request #776 from deltalejo/fix/tools-array
mkarlesky Jun 25, 2024
2f246f1
📝 Expanded and updated Command Hooks docs
mkarlesky Jun 25, 2024
674c556
🐛 Logging bug fix
mkarlesky Jul 10, 2024
922701f
🐛 Fixed mixins merge order bug
mkarlesky Jul 10, 2024
d4bbc17
🔖 Bumped version to 1.0.0
mkarlesky Jul 10, 2024
0dde9b9
📄 Fixed links and typos in README.md
mkarlesky Jul 11, 2024
ab5427f
🐛 Preprocessing + CMock :treat_inlines
mkarlesky Jul 15, 2024
8d02ade
Merge branch 'test/ceedling_0_32_rc' of https://github.com/ThrowTheSw…
mkarlesky Jul 15, 2024
cb639e2
📝 Documentation fixes & updates
mkarlesky Jul 16, 2024
331a769
🐛 Fixed raw results handling for gcov plugin
mkarlesky Jul 16, 2024
a8c0834
📝 Improved documentation
mkarlesky Jul 16, 2024
e70fbb2
🐛 Made ARGV capture functional
mkarlesky Jul 16, 2024
088c460
✨ GCov plugin now checks on gcov: tasks in CLI
mkarlesky Jul 16, 2024
622f438
📝 More better documentation
mkarlesky Jul 17, 2024
f57f423
📝 Documentation updates
mkarlesky Jul 17, 2024
9efd5bc
🐛 Restored support for Unity parameterized tests
mkarlesky Jul 17, 2024
1cd4076
✅ Added tests for Unity parameterized test cases
mkarlesky Jul 17, 2024
17fc270
✅ Added test case from PR #585
mkarlesky Jul 17, 2024
31d4fcf
📝 Documentation for parameterized test support
mkarlesky Jul 17, 2024
147d57f
📝 Parameterized test case blurb
mkarlesky Jul 17, 2024
80cc9c4
🐛 Test runners now generated with test includes
mkarlesky Jul 18, 2024
af1c662
Removed unused methods
mkarlesky Jul 23, 2024
be80426
✨ Preprocessing has more configuration options
mkarlesky Jul 23, 2024
57b13eb
📝 More better docs
mkarlesky Jul 23, 2024
fea9d02
🚸 Added CMock & runner gen headings to logging
mkarlesky Jul 23, 2024
3d809da
🚸 Added clear debug logging for frameworks config
mkarlesky Jul 23, 2024
7f5ddf4
🐛 :unity_helper_path handling for CMock config
mkarlesky Jul 23, 2024
838109e
🐛 Ensure proper empty output tool logging
mkarlesky Jul 23, 2024
c3a83fa
✨ Added optional logging to command hooks
mkarlesky Jul 23, 2024
727258d
🐛 Fixed bad stream references
mkarlesky Jul 23, 2024
28f9e30
✅ Fixed tests for tool logging changes
mkarlesky Jul 24, 2024
dd3fee1
📝 Typo fix and improvement
mkarlesky Jul 25, 2024
72a49f4
🐛 New test preprocessor handling fix
mkarlesky Jul 25, 2024
d9f56d5
🐛 Forgot to save a file in the commit
mkarlesky Jul 25, 2024
e193fcd
♻️ Moved static CMock defaults into defaults
mkarlesky Jul 25, 2024
4d75a3e
🐛 Fixed new defaults handling
mkarlesky Jul 25, 2024
5d6c641
📝 Doc updates / improvements
mkarlesky Jul 26, 2024
75e5535
💡 Better comments
mkarlesky Jul 26, 2024
af7630b
🐛 Bug fix after ConfigWalkinator refactoring
mkarlesky Jul 26, 2024
78d42d8
Fix release task logging.
deltalejo Jul 28, 2024
1e4bb01
Merge pull request #911 from deltalejo/fix/release-task
mkarlesky Jul 29, 2024
4d6e750
📝 Updated docs
mkarlesky Jul 29, 2024
c242ca1
✅ Added tests for preprocessing feature
mkarlesky Jul 29, 2024
a696cf8
✅ Windows fix
mkarlesky Jul 29, 2024
95edb5b
✅ Another attempt at a fix for Windows
mkarlesky Jul 29, 2024
bb810df
💡 Fixed typo
mkarlesky Jul 29, 2024
c9cc839
📝 Doc updates
mkarlesky Jul 29, 2024
61529ae
📝 Typo fixes and clarity
mkarlesky Aug 3, 2024
f161395
✨ Added Git commit SHA (short) to version handling
mkarlesky Aug 3, 2024
77aa3aa
💚 Github Action environment variable fix
mkarlesky Aug 3, 2024
1339f90
💚 Add path for Github commit SHA file
mkarlesky Aug 3, 2024
a647262
💚 Fixed ordering of Github Action
mkarlesky Aug 4, 2024
36a6c0d
🔧 Changed backtrace settings in assets/*.yml
mkarlesky Aug 4, 2024
ba45d2c
♻️ Cleaned up version handling
mkarlesky Aug 5, 2024
e9f35da
💚 Fixed forgotten environment var rename
mkarlesky Aug 5, 2024
e627631
🎨 Indentation
mkarlesky Aug 7, 2024
fcf7c82
🐛 Filled gap in mutex locking for thread safety
mkarlesky Aug 7, 2024
f09c7e3
📝 Expanded and clarified test preprocessing
mkarlesky Aug 10, 2024
ea5a3b4
🐛 Ensured smart default verbosity
mkarlesky Aug 10, 2024
7b15fde
✨ Added default filtering out of OS junk files
mkarlesky Aug 12, 2024
f3d2487
📝 Documentation improvements
mkarlesky Aug 12, 2024
f0a0e0f
✨ Better version logging
mkarlesky Aug 12, 2024
a1e6b24
✅ Added version output tests
mkarlesky Aug 12, 2024
34d0de6
🔧 Changed test preprocessing default
mkarlesky Aug 12, 2024
b9dfb64
♻️ Removed cacheing
mkarlesky Aug 19, 2024
5027398
📝 Better CLI `version` documentation in help
mkarlesky Aug 19, 2024
476a01c
📝 Improved onvnetions & behaviors overview in TOC
mkarlesky Aug 19, 2024
69391cd
🐛 Prevented plugin pre- / post-build events
mkarlesky Aug 19, 2024
8865262
🐛 Verbosity handling bug
mkarlesky Aug 19, 2024
cebc432
📝 Documentation clarifications
mkarlesky Aug 22, 2024
db3c219
📝 Clarified Docker-based development details
mkarlesky Aug 22, 2024
68cb3b7
🐛 Proper default handling for tool merging
mkarlesky Aug 22, 2024
9c1c51d
📝 Project developer instructions update
mkarlesky Aug 23, 2024
af3fb4f
📝 README clarity improvements
mkarlesky Aug 27, 2024
d603776
📝 Date update
mkarlesky Aug 28, 2024
66fbfa1
✨ Tool definitions cleanup & new shortcut
mkarlesky Aug 28, 2024
9c60120
🎨 Traditional begin / rescue instead of concise
mkarlesky Aug 28, 2024
e9926ff
🎨 Aligned hash columns and whitespace
mkarlesky Aug 28, 2024
8ab8b16
🐛 Fixed defaults population
mkarlesky Aug 28, 2024
de35e2e
✨ Better debugging output for defaults handling
mkarlesky Aug 28, 2024
fd893a4
✨ Added support for gcovr merge-mode-functions
mkarlesky Aug 28, 2024
f4b0cfb
📝 gcovr --merge-mode-function support
mkarlesky Aug 28, 2024
b6d12f9
✨ Log full project filepath + working dir
mkarlesky Aug 29, 2024
3d9cd04
🐛 Resolved frozen ENV lookup string issue
mkarlesky Aug 29, 2024
64f1231
✨ Added :environment validation
mkarlesky Sep 2, 2024
4378089
🚸 Added environment variable formatting
mkarlesky Sep 2, 2024
d666b6d
📝 Updated :environment docs & examples
mkarlesky Sep 2, 2024
fcab567
📝 Configuration validation
mkarlesky Sep 2, 2024
6b4829f
📝 Documented removal of undocumented convention
mkarlesky Sep 2, 2024
768beae
🐛 Missed removing Ruby eval replacement reference
mkarlesky Sep 5, 2024
f6934e5
🔥 Lightweight validation to be made more better
mkarlesky Sep 11, 2024
47c9c4e
🎨 Changed matcher to preferred symbol
mkarlesky Sep 11, 2024
d880297
✨ Added :flags & :defines validation
mkarlesky Sep 11, 2024
4190c33
🐛 Fixed error message formatting exception
mkarlesky Sep 12, 2024
533d636
⚡️ Do not compile cmock.c if no mocks used
mkarlesky Sep 12, 2024
4c297f0
📝 More better documentation on preprocessing
mkarlesky Sep 16, 2024
d9640c4
📝 Improved :flags & :defines docs
mkarlesky Sep 17, 2024
8d28b33
🐛 :flags & :defines
mkarlesky Sep 17, 2024
7711e2b
🐛 Validating nested arrays in :flags & :defines
mkarlesky Sep 17, 2024
8cc7c0b
📝 Documentation updates & format tweaks
mkarlesky Sep 30, 2024
9ef89a9
♻️ More better logic and encapsulation
mkarlesky Sep 30, 2024
a4008fc
📝 Link fixes
mkarlesky Sep 30, 2024
e06f844
📝 Format fix + date updates
mkarlesky Sep 30, 2024
847fcff
Update sample project to include a couple integration tests.
mvandervoord Oct 4, 2024
984c6ff
Updates to example specs to match latest changes.
mvandervoord Oct 4, 2024
48f45a0
more updates to tests related to using gcov with example project
mvandervoord Oct 4, 2024
5dfca04
Fixed CLI logging options
mkarlesky Oct 10, 2024
694d619
🐛 Propogated logging path change
mkarlesky Oct 10, 2024
2224807
Merge branch 'dev/cli_logging_fix' into test/ceedling_0_32_rc
mkarlesky Oct 10, 2024
f8c88cd
📝 Updated CLI help for buid application command
mkarlesky Oct 10, 2024
fb54c9f
📝 Tweaked CLI help
mkarlesky Oct 10, 2024
2e94ec6
♻️ Simplified logging file CLI options
mkarlesky Oct 10, 2024
c387969
* Refactor loginator for background processing
mvandervoord Oct 14, 2024
61fb4a5
Merge branch 'test/ceedling_0_32_rc' into test/refactor_loginator_and…
mvandervoord Oct 14, 2024
80601ce
refactor gcov to run using new flow (and tweak flow to support it)
mvandervoord Oct 19, 2024
538c0ef
remove a rule that is no longer required.
mvandervoord Oct 19, 2024
b2e8535
promote loginator so we know where to find it from anywhere.
mvandervoord Oct 19, 2024
cb01ae0
- remove orphaned function.
mvandervoord Oct 19, 2024
a71670f
Reverted to (smarter) logging CLI options
mkarlesky Oct 22, 2024
bca3ba0
Added missing parameter checks for string flags
mkarlesky Oct 23, 2024
37fc98a
- Protect against relative path failures, like C: to D:
mvandervoord Oct 23, 2024
9fc30fb
Bump to latest CMock
mvandervoord Oct 23, 2024
8ce41a0
Merge pull request #942 from ThrowTheSwitch/test/refactor_loginator_a…
mvandervoord Oct 23, 2024
eb9f6d9
🐛 Fixed default CLI string params
mkarlesky Oct 24, 2024
ae94098
Merge branch 'test/ceedling_0_32_rc' of https://github.com/ThrowTheSw…
mkarlesky Oct 24, 2024
163f87a
🐛 Removed double exception logging
mkarlesky Oct 25, 2024
3f7a332
💡 Better comments
mkarlesky Oct 25, 2024
6ed5209
💡 Comment formatting
mkarlesky Oct 25, 2024
af4f1ad
🐛 Extension handling now allows dotted filenames
mkarlesky Oct 25, 2024
5c7b2f4
📝 Added search paths details
mkarlesky Oct 29, 2024
0e39de4
📝 Added dotted filename support
mkarlesky Oct 29, 2024
e80ae94
🐛 Restored test tasks with .c in task name
mkarlesky Oct 29, 2024
15b8637
🐛 Restored source extension to task names
mkarlesky Oct 29, 2024
bf23993
📝 FInished Docker image section
mkarlesky Oct 29, 2024
33c05c5
✨ Replaced Rake exception with our own
mkarlesky Oct 29, 2024
f08576b
🎨 Exception logging improvements
mkarlesky Oct 29, 2024
a781bc4
Fixed Markdown in README.md
mkarlesky Oct 29, 2024
ff297a9
📝 Docs — primarily assembly in test builds
mkarlesky Oct 31, 2024
737fcbd
📝 ReleaseNotes entry for test build assembly code
mkarlesky Oct 31, 2024
856bbc6
Merge branch 'master' into test/ceedling_0_32_rc
mvandervoord Nov 1, 2024
60c24c2
:bug: fixed #949 Module Generator Incorrect Src Path.
mvandervoord Nov 7, 2024
460c5f8
doc: Module generator alternative path.md
JuPrgn Nov 7, 2024
8dcf4fc
Merge pull request #950 from JuPrgn/patch-1
mvandervoord Nov 7, 2024
52be1ca
📝 Ordering of :paths entries related to Mixins
mkarlesky Nov 8, 2024
6bcb9fa
🐛 Certain scenarios yield no matches
mkarlesky Nov 10, 2024
f899db8
📝 Typo fix and clarifications
mkarlesky Nov 10, 2024
4381c9b
📝 Clarified test build directive macros
mkarlesky Nov 10, 2024
2226f3e
📝 Updated CeedlingPacket with Docker
mkarlesky Nov 10, 2024
8c90c81
📝 Removed piece of confusing terminal prompt
mkarlesky Nov 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
264 changes: 235 additions & 29 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
# =========================================================================
# Ceedling - Test-Centered Build System for C
# ThrowTheSwitch.org
# Copyright (c) 2010-24 Mike Karlesky, Mark VanderVoord, & Greg Williams
# SPDX-License-Identifier: MIT
# =========================================================================

---
# Continuous Integration Workflow: Test case suite run + validation build check
# Continuous Integration Workflow
name: CI

# Controls when the action will run.
# Triggers the workflow on push or pull request events but only for the master branch
# Triggers the workflow on push or pull request events for master & test branches
on:
push:
branches:
Expand All @@ -13,69 +19,269 @@ on:
branches: [ master ]
workflow_dispatch:


# Needed by softprops/action-gh-release
permissions:
# Allow built gem file push to Github release
contents: write


jobs:
# Job: Unit test suite
unit-tests:
name: "Unit Tests"
# Job: Linux unit test suite
unit-tests-linux:
name: "Linux Test Suite"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ruby: ['2.7', '3.0', '3.1']
ruby: ['3.0', '3.1', '3.2']
steps:
# Install Binutils, Multilib, etc
- name: Install C dev Tools
# Use a cache for our tools to speed up testing
- uses: actions/cache@v4
with:
path: vendor/bundle
key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby-version }}-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby-version }}-

# Checks out repository under $GITHUB_WORKSPACE
- name: Checkout Latest Repo
uses: actions/checkout@v4
with:
submodules: recursive

# Setup Ruby Testing Tools to do tests on multiple ruby version
- name: Setup Ruby Testing Tools
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}

# Install Ruby Testing Tools (Bundler version should match the one in Gemfile.lock)
- name: Install Ruby Testing Tools
run: |
gem install rspec
gem install rubocop -v 0.57.2
gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"
bundle update
bundle install

# Install gdb for backtrace feature testing
- name: Install gdb for Backtrace Feature Testing
run: |
sudo apt-get update -qq
sudo apt-get install --assume-yes --quiet gcc-multilib
sudo apt-get install -qq gcc-avr binutils-avr avr-libc gdb
sudo apt-get install --assume-yes --quiet gdb

# Install GCovr
- name: Install GCovr
# Install GCovr for Gcov plugin
- name: Install GCovr for Gcov Plugin Tests
run: |
sudo pip install gcovr

# Install ReportGenerator for Gcov plugin
# Fix PATH before tool installation
# https://stackoverflow.com/questions/59010890/github-action-how-to-restart-the-session
- name: Install ReportGenerator for Gcov Plugin Tests
run: |
mkdir --parents $HOME/.dotnet/tools
echo "$HOME/.dotnet/tools" >> $GITHUB_PATH
dotnet tool install --global dotnet-reportgenerator-globaltool

# Run Tests
- name: Run All Self Tests
run: |
rake ci

# Build & Install Gem
- name: Build and Install Gem
run: |
gem build ceedling.gemspec
gem install --local ceedling-*.gem

# Run temp_sensor
- name: Run Tests on temp_sensor Project
run: |
cd examples/temp_sensor
ceedling test:all
cd ../..

# Run FFF Plugin Tests
- name: Run Tests on FFF Plugin
run: |
cd plugins/fff
rake
cd ../..

# Run Module Generator Plugin Tests
- name: Run Tests on Module Generator Plugin
run: |
cd plugins/module_generator
rake
cd ../..

# Run Dependencies Plugin Tests
- name: Run Tests on Dependencies Plugin
run: |
cd plugins/dependencies
rake
cd ../..

# Job: Windows unit test suite
unit-tests-windows:
name: "Windows Test Suite"
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
ruby: ['3.0', '3.1', '3.2']
steps:
# Use a cache for our tools to speed up testing
- uses: actions/cache@v4
with:
path: vendor/bundle
key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby-version }}-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby-version }}-

# Checks out repository under $GITHUB_WORKSPACE
- name: Checkout Latest Repo
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
submodules: recursive

# Setup Ruby Testing Tools to do tests on multiple ruby version
- name: Setup Ruby Testing Tools
- name: Set Up Ruby Testing Tools
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
# Install Ruby Testing Tools (Bundler version should match the one in Gemfile.lock)

# Install Ruby Testing Tools
# Bundler version should match the one in Gemfile.lock
- name: Install Ruby Testing Tools
shell: bash
run: |
gem install rspec
gem install rubocop -v 0.57.2
gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"
bundle update
bundle install

# Install GCovr for Gcov plugin test
- name: Install GCovr for Gcov Plugin Tests
run: |
pip install gcovr

# Install ReportGenerator for Gcov plugin test
- name: Install ReportGenerator for Gcov Plugin Tests
run: |
dotnet tool install --global dotnet-reportgenerator-globaltool

# Run Tests
- name: Run All Self Tests
run: |
bundle exec rake ci
rake ci

# Build & Install Gem
- name: Build and Install Gem
- name: Build and Install Gem
run: |
gem build ceedling.gemspec
gem install --local ceedling-*.gem

# Run Blinky
# Disabled because it's set up for avr-gcc
#- name: Run Tests On Blinky Project
# run: |
# cd examples/blinky
# ceedling module:create[someNewModule] module:destroy[someNewModule] test:all
# cd ../..

# Run Temp Sensor
- name: Run Tests On Temp Sensor Project
# Run temp_sensor example project
- name: Run Tests on temp_sensor Project
run: |
cd examples/temp_sensor
ceedling module:create[someNewModule] module:destroy[someNewModule] test:all
ceedling test:all
cd ../..

# Run FFF Plugin Tests
- name: Run Tests on FFF Plugin
run: |
cd plugins/fff
rake
cd ../..

# Run Module Generator Plugin Tests
- name: Run Tests on Module Generator Plugin
run: |
cd plugins/module_generator
rake
cd ../..

# Run Dependencies Plugin Tests
- name: Run Tests on Dependencies Plugin
run: |
cd plugins/dependencies
rake
cd ../..

# Job: Automatic Minor Release
auto-release:
name: "Automatic Minor Release"
needs:
- unit-tests-linux
- unit-tests-windows
runs-on: ubuntu-latest
strategy:
matrix:
ruby: [3.2]

steps:
# Checks out repository under $GITHUB_WORKSPACE
- name: Checkout Latest Repo
uses: actions/checkout@v4
with:
submodules: recursive

# Set Up Ruby Tools
- name: Set Up Ruby Tools
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}

# Generate the Version + Hash Name
- name: Version
id: versions
shell: bash
run: |
echo "short_ver=$(ruby ./lib/ceedling/version.rb)" >> $GITHUB_ENV
echo "full_ver=$(ruby ./lib/ceedling/version.rb)-$(git rev-parse --short HEAD)" >> $GITHUB_ENV

# Build Gem
- name: Build Gem
run: |
gem build ceedling.gemspec

# Create Unofficial Release
- name: Create Pre-Release
uses: actions/create-release@v1
id: create_release
with:
draft: false
prerelease: true
release_name: ${{ env.full_ver }}
tag_name: ${{ env.full_ver }}
body: "Automatic pre-release for ${{ env.full_ver }}"
env:
GITHUB_TOKEN: ${{ github.token }}

# Post Gem to Unofficial Release
- name: Upload Pre-Release Gem
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ github.token }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./ceedling-${{ env.short_ver }}.gem
asset_name: ceedling-${{ env.full_ver }}.gem
asset_content_type: test/x-gemfile

# - name: Upload Pre-Release Gem
# uses: softprops/action-gh-release@v2
# with:
# # repo_token: "${{ secrets.GITHUB_TOKEN }}"
# body: |
# [Release Notes](${{ github.workspace }}/docs/ReleaseNotes.md)
# name: ${{ env.full_ver }}
# prerelease: true
# files: |
# *.gem

7 changes: 5 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,13 @@ out.fail
tags
*.taghl

examples/blinky/build/
examples/blinky/vendor/
examples/temp_sensor/vendor/
examples/temp_sensor/build/
plugins/fff/examples/fff_example/build/
plugins/module_generator/example/build/
plugins/dependencies/example/boss/build/
plugins/dependencies/example/boss/third_party/
plugins/dependencies/example/supervisor/build/

ceedling.sublime-project
ceedling.sublime-workspace
Expand Down
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,3 @@
path = vendor/cmock
url = https://github.com/ThrowTheSwitch/CMock.git
branch = master
[submodule "plugins/fake_function_framework"]
path = plugins/fake_function_framework
url = https://github.com/ElectronVector/fake_function_framework.git
7 changes: 7 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# =========================================================================
# Ceedling - Test-Centered Build System for C
# ThrowTheSwitch.org
# Copyright (c) 2010-24 Mike Karlesky, Mark VanderVoord, & Greg Williams
# SPDX-License-Identifier: MIT
# =========================================================================

# This is the configuration used to check the rubocop source code.

#inherit_from: .rubocop_todo.yml
Expand Down
10 changes: 9 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
# =========================================================================
# Ceedling - Test-Centered Build System for C
# ThrowTheSwitch.org
# Copyright (c) 2010-24 Mike Karlesky, Mark VanderVoord, & Greg Williams
# SPDX-License-Identifier: MIT
# =========================================================================

source "http://rubygems.org/"

gem "bundler"
gem "bundler", "~> 2.5"
gem "rake"
gem "rspec", "~> 3.8"
gem "require_all"
Expand All @@ -9,6 +16,7 @@ gem "diy"
gem "rr"
gem "thor"
gem "deep_merge"
gem "unicode-display_width"

#these will be used if present, but ignored otherwise
#gem "curses"
Expand Down
Loading
Loading