As developers who frequently utilize various CI platforms in our workflows, we found that many existing solutions are often complex and costly. This realization led to the creation of TurtleCI—a user-friendly and affordable alternative, inspired by the best CI platforms available today.
Below is a straightforward and comprehensive guide to help you understand how to use TurtleCI effectively.
In our CI we value the value of composition, mix-ins so there are 2 file type you would need to know:
<workflow-file-type>.yml
<module-file-type>.yml
Here is the folder structure:
.turtleci/
mods/
module-1.yml
module-2.yml
module-3.yml
workflow-id-1.yml
workflow-id-2.yml
on.<action-type>
on.<action-type>.branches.<branch>
on:
push:
branches:
- production
- test
- staging
- 'features/**'
- 'fix/*'
on.<action-type>.tags.<tag>
on:
push:
tags:
- 'release-1'
- 'release-2-*'
- 'dist-*'
on:
push:
tags:
- 'release-1'
- 'release-2-*'
- 'dist-*'
jobs:
myAwesomeJobThatIsTooCoolToHandleIthink:
steps:
- runs: echo "foo"
jobs:
myAwesomeJobThatIsTooCoolToHandleIthink:
builder:
- linux
- macos
jobs:
myAwesomeJobThatIsTooCoolToHandleIthink:
builder:
- macos
mySecondAwesomeJobThatIsTooCoolToHandleIthink:
requires:
- myAwesomeJobThatIsTooCoolToHandleIthink
builder:
- linux
jobs:
myAwesomeJobThatIsTooCoolToHandleIthink:
builder:
- macos
steps:
- uses: checkout
- uses: otherPrecompliedModule
- name: Install Bun dependencies
run: bun install
- name: Install and build because why no
run: bun install && bun run build
- name: Install Bun dependencies
run: bun install
working-directory: ./app
modules