Skip to content

Commit 3cf4cfa

Browse files
committed
add more readmes
1 parent 56205d5 commit 3cf4cfa

7 files changed

Lines changed: 102 additions & 0 deletions

File tree

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# 01. History and Motivation
2+
3+
Continuous Integration (CI) has dramatically transformed the way we build, test, and deliver software. What once took weeks or months is now handled in minutes — all thanks to decades of innovation in tooling and process.
4+
5+
## Speed of Software Delivery over Time
6+
7+
The time between writing and shipping software has shrunk drastically over the decades:
8+
9+
| Era | Delivery Method | Turnaround Time |
10+
|------------------|-------------------------------|------------------------|
11+
| 🧮 1960s–70s | **Punch cards / Mainframes** | Days to weeks |
12+
| 💾 1980s–90s | **Floppy disks, CDs** | Monthly to yearly |
13+
| 🌐 2000s | **Server deployments** | Weekly to quarterly |
14+
| ☁️ 2010s–Now | **CI/CD pipelines & cloud** | Multiple times per day |
15+
16+
![](./readme-assets/speed-of-delivery-over-time.png)
17+
18+
## History of CI Systems
19+
20+
| Year | CI Tool | Significance |
21+
|------|-------------------|--------------|
22+
| 1997 | **Tinderbox** | Mozilla’s early build tracker – one of the first CI-like systems. |
23+
| 2001 | **CruiseControl** | First widely adopted open-source CI server. |
24+
| 2004 | **Hudson** | Friendly UI and plugin support for Java CI; widely adopted. |
25+
| 2006 | **TeamCity** | JetBrains' commercial CI with strong IDE and test integration. |
26+
| 2007 | **Bamboo** | Atlassian's CI/CD tool with tight JIRA/Bitbucket integration. |
27+
| 2011 | **Jenkins** | Community-driven fork of Hudson; became CI standard for years. |
28+
| 2011 | **Travis CI** | First GitHub-native CI/CD as a service. |
29+
| 2011 | **CircleCI** | Cloud CI/CD with fast feedback and Docker-native builds. |
30+
| 2015 | **GitLab CI/CD** | Built-in CI/CD pipelines in GitLab, configured via YAML. |
31+
| 2016 | **AWS CodeBuild** | Managed CI inside AWS ecosystem. |
32+
| 2018 | **GitHub Actions**| GitHub-native automation with deep ecosystem and community support. |
33+
34+
![](./readme-assets/ci-timeline.png)
457 KB
Loading
377 KB
Loading

02-why-github-actions/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# 02. Why GitHub Actions
2+
3+
4+
![](./readme-assets/developer-surveys.png)
5+
6+
GitHub Actions is one of the most popular CI tools across the industry. Here is a comparison with some of the other top choices:
7+
8+
| Tool | Why Yes? | Why No? |
9+
|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
10+
| GitHub Actions | • Your code is (likely) on GitHub already <br> • Minimal barrier to entry <br> • Expansive public marketplace <br> • Market leadership leads to improved tooling (like [namespace.so](https://namespace.so)!) | • If you aren’t already using GitHub <br> • Less powerful pipeline reuse primitives <br> • Painful debugging experience <br> • Limited analytics/observability |
11+
| GitLab CI | • Your code (might be) on GitLab already <br> • Minimal barrier to entry (if using GitLab) <br> • Deep integration with other GitLab features <br> • GitLab “Auto DevOps” | • If you aren’t already using GitLab <br> • Smaller public marketplace (<500 total) |
12+
| CircleCI | • Your code isn’t on GitHub or GitLab (CircleCI is VCS agnostic) <br> • Built-in “retry with SSH” feature is 🔥 | • Requires initial setup (vs. GHA + GitLab) <br> • Smaller public orbs marketplace (3653 total) |
13+
| Jenkins | • You (might) already be using it <br> • The plugin ecosystem is vast | • Incurs significant maintenance overhead (security and plugin dependencies) <br> • Groovy pipeline DSL feels outdated |
470 KB
Loading

05-marketplace-actions/README.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# 05. Marketplace Actions
2+
3+
The [GitHub Actions Marketplace](https://github.com/marketplace?type=actions) is one of the platforms best features. There are thousands of open source actions you can use to build your automation pipelines.
4+
5+
6+
![](./readme-assets/gha-marketplace.png)
7+
8+
## Assessing Actions
9+
10+
Not all actions are created equal. You should review before use.
11+
12+
1. Assess like any open source dependency
13+
2. Does it do what you need it to?
14+
3. Signals for quality/trustworthiness:
15+
- User verification
16+
- Number of stars
17+
- Active commit history
18+
19+
## Security
20+
21+
Actions often run with access to sensitive data/environments
22+
23+
The only way to ensure you are running the same version is to pin with the commit hash:
24+
```
25+
❌ - uses: actions/checkout
26+
❌ - uses: actions/checkout@v4
27+
❌ - uses: actions/checkout@v4.2.2
28+
✅ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
29+
```
30+
31+
In 2025, a supply chain attack affected many repositories who did not follow this approach: https://www.wiz.io/blog/github-action-tj-actions-changed-files-supply-chain-attack-cve-2025-30066
32+
33+
## Popular Actions
34+
35+
### Official Actions (from GitHub)
36+
- checkout https://github.com/marketplace/actions/checkout-action
37+
- cache https://github.com/marketplace/actions/cache
38+
- artifact
39+
- upload https://github.com/marketplace/actions/upload-a-build-artifact
40+
- download https://github.com/marketplace/actions/download-a-build-artifact
41+
- github-script https://github.com/marketplace/actions/github-script
42+
43+
### Install Runtimes / Dependencies (e.g. node)
44+
- setup-node https://github.com/marketplace/actions/setup-node-js-environment
45+
- setup-go https://github.com/marketplace/actions/setup-go-environment
46+
- setup-java-jdk https://github.com/marketplace/actions/setup-java-jdk
47+
48+
### Auth to 3rd External Application / Platform
49+
- AWS https://github.com/marketplace/actions/configure-aws-credentials-action-for-github-actions
50+
- Azure https://github.com/marketplace/actions/azure-login
51+
- GCP https://github.com/marketplace/actions/authenticate-to-google-cloud
52+
53+
### Other
54+
- Super-linter https://github.com/marketplace/actions/super-linter
55+
- Build / push container images: https://github.com/marketplace/actions/build-and-push-docker-images
636 KB
Loading

0 commit comments

Comments
 (0)