gem-ci 0.2.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.env.example +35 -0
- data/.secrets.example +33 -0
- data/.slack/app-manifest.json +23 -0
- data/CHANGELOG.md +172 -0
- data/CONTRIBUTORS.md +65 -0
- data/README.md +63 -125
- data/docs/Gemfile +33 -0
- data/docs/Gemfile.lock +177 -0
- data/docs/README.md +130 -0
- data/docs/_config.yml +111 -0
- data/docs/_includes/head-custom.html +77 -0
- data/docs/_includes/site-nav.html +40 -0
- data/docs/_layouts/default.html +46 -0
- data/docs/assets/css/style.scss +727 -0
- data/docs/assets/images/gem-ci-transparent-bg.png +0 -0
- data/docs/diagrams/ci-workflow-overview.md +38 -22
- data/docs/diagrams/gitflow-diagram.md +238 -0
- data/docs/guides/bot-commands.md +387 -0
- data/docs/guides/customization.md +553 -0
- data/docs/guides/ecosystem.md +579 -0
- data/docs/guides/gitflow.md +271 -0
- data/docs/guides/local-testing.md +323 -0
- data/docs/guides/mermaid-test.md +89 -0
- data/docs/guides/monitoring.md +524 -0
- data/docs/guides/validation.md +590 -0
- data/docs/index.md +109 -0
- data/docs/setup/github-pages.md +152 -0
- data/docs/{SECRETS_SETUP_GUIDE.md → setup/secrets.md} +13 -7
- data/docs/workflow-dependencies.md +43 -0
- data/docs/workflows/overview.md +310 -0
- data/lib/gem_ci/version.rb +1 -1
- data/public/gem-ci-transparent-bg.png +0 -0
- data/public/gem-ci.jpeg +0 -0
- data/public/gem-ci.svg +3621 -0
- data/scripts/README.md +258 -0
- data/scripts/test-local +315 -0
- data/scripts/test-workflows +303 -0
- metadata +35 -4
- data/docs/MANUAL_WORKFLOW_TESTING.md +0 -190
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 29bc39ee5d271905ae3a9705d78682e89f417db9e01dd0b7e7c9bc85469ee0eb
|
|
4
|
+
data.tar.gz: efdc16b720ee51cb7234610d8bf3dd5a0d2d29765b4ddda48eeb2df6a10108e7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 815c79de0bdcdf09490eeafc4ef4f429077dc858670450af369b92f2b8184d201c8999343c46f516098a62e64e592e886b88911f2fddcccdf0b2f6adb73e6a49
|
|
7
|
+
data.tar.gz: 67cf0df7cd2d494850b142c8b433b652b36c0eeb3d5aae5e21f6a340d67c33eecf90d8cad029990bdbf3956b970ba7b67c4e1d425abff80adfc3999562c36b0a
|
data/.env.example
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Example environment variables file for local testing with act
|
|
2
|
+
# Copy this file to .env.local or .env.test and modify as needed
|
|
3
|
+
# Format: KEY=VALUE (dotenv format)
|
|
4
|
+
|
|
5
|
+
# Ruby version for testing (override workflow default)
|
|
6
|
+
RUBY_VERSION=3.3
|
|
7
|
+
|
|
8
|
+
# Node.js version for documentation builds
|
|
9
|
+
NODE_VERSION=20
|
|
10
|
+
|
|
11
|
+
# Cache version (for debugging cache issues)
|
|
12
|
+
CACHE_VERSION=v2
|
|
13
|
+
|
|
14
|
+
# Workflow behavior controls
|
|
15
|
+
DEFAULT_TIMEOUT=300
|
|
16
|
+
API_RETRY_COUNT=3
|
|
17
|
+
|
|
18
|
+
# Testing flags (prevent actual publishing/deployment)
|
|
19
|
+
DRY_RUN=true
|
|
20
|
+
SKIP_PUBLISH=true
|
|
21
|
+
SKIP_DEPLOY=true
|
|
22
|
+
|
|
23
|
+
# Development/debug settings
|
|
24
|
+
DEBUG=true
|
|
25
|
+
VERBOSE=true
|
|
26
|
+
LOG_LEVEL=debug
|
|
27
|
+
|
|
28
|
+
# Override workflow settings for local testing
|
|
29
|
+
GITHUB_REPOSITORY=your-username/your-repo
|
|
30
|
+
GITHUB_REF=refs/heads/main
|
|
31
|
+
GITHUB_SHA=abc1234567890
|
|
32
|
+
|
|
33
|
+
# Custom environment variables for your workflows
|
|
34
|
+
# Add any environment variables your workflows use
|
|
35
|
+
# CUSTOM_ENV_VAR=local_value
|
data/.secrets.example
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Example secrets file for local testing with act
|
|
2
|
+
# Copy this file to .secrets and fill in your actual values
|
|
3
|
+
# Format: KEY=VALUE (dotenv format)
|
|
4
|
+
|
|
5
|
+
# GitHub Personal Access Token (required)
|
|
6
|
+
# Get from: GitHub → Settings → Developer settings → Personal access tokens
|
|
7
|
+
# Permissions needed: repo, workflow, write:packages
|
|
8
|
+
GITHUB_TOKEN=github_pat_11ABCDEFG_your_token_here
|
|
9
|
+
|
|
10
|
+
# GitHub App credentials (required for some workflows)
|
|
11
|
+
# Get from: GitHub → Settings → Developer settings → GitHub Apps
|
|
12
|
+
APP_ID=123456
|
|
13
|
+
PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----
|
|
14
|
+
your_private_key_content_here
|
|
15
|
+
-----END RSA PRIVATE KEY-----"
|
|
16
|
+
|
|
17
|
+
# Slack Bot Token (optional - for rich notifications using official Slack action)
|
|
18
|
+
# Get from: api.slack.com → Your App → OAuth & Permissions
|
|
19
|
+
# Scopes needed: chat:write
|
|
20
|
+
SLACK_BOT_TOKEN=xoxb-random_string_here
|
|
21
|
+
|
|
22
|
+
# Slack Channel ID (optional - for notifications)
|
|
23
|
+
# Get from: Slack → Right-click channel → View channel details
|
|
24
|
+
SLACK_CHANNEL_ID=C1234567890
|
|
25
|
+
|
|
26
|
+
# RubyGems API Key (optional - for publishing)
|
|
27
|
+
# Get from: rubygems.org → Account → API Keys
|
|
28
|
+
# Permissions needed: Push rubygems
|
|
29
|
+
RUBYGEMS_API_KEY=rubygems_your_api_key_here
|
|
30
|
+
|
|
31
|
+
# Additional secrets as needed
|
|
32
|
+
# Add any other secrets your workflows require
|
|
33
|
+
# MY_CUSTOM_SECRET=value
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"display_information": {
|
|
3
|
+
"name": "gem-ci",
|
|
4
|
+
"description": "Automated CI/CD notifications for GemCI",
|
|
5
|
+
"background_color": "#2c3e50"
|
|
6
|
+
},
|
|
7
|
+
"features": {
|
|
8
|
+
"bot_user": {
|
|
9
|
+
"display_name": "gem-ci",
|
|
10
|
+
"always_online": true
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"oauth_config": {
|
|
14
|
+
"scopes": {
|
|
15
|
+
"bot": ["chat:write", "chat:write.public"]
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"settings": {
|
|
19
|
+
"org_deploy_enabled": false,
|
|
20
|
+
"socket_mode_enabled": false,
|
|
21
|
+
"token_rotation_enabled": false
|
|
22
|
+
}
|
|
23
|
+
}
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,177 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.5.0](https://github.com/patrick204nqh/gem-ci/compare/gem-ci/v0.4.0...gem-ci/v0.5.0) (2026-02-18)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### 🚀 Features
|
|
7
|
+
|
|
8
|
+
* Enhance documentation with improved image handling and streamlined workflow descriptions ([a67bdab](https://github.com/patrick204nqh/gem-ci/commit/a67bdab6928a77f5cdf6312500d117a3e66e0778))
|
|
9
|
+
* Remove bot command handler workflow ([e01b6d5](https://github.com/patrick204nqh/gem-ci/commit/e01b6d584572dcaa76b13e2d1376b9cb4be81ccf))
|
|
10
|
+
* Revamp documentation layout and enhance content clarity ([94b2017](https://github.com/patrick204nqh/gem-ci/commit/94b20175117ac018b945770d23d868c8adb89ac8))
|
|
11
|
+
* Update CI workflows to ignore documentation changes and add new logo image ([cd0d30f](https://github.com/patrick204nqh/gem-ci/commit/cd0d30f3b226ce9d49e81ab615252d7955a0050f))
|
|
12
|
+
* Update documentation to include CI Workflow and GitFlow diagrams ([65438e4](https://github.com/patrick204nqh/gem-ci/commit/65438e4a538d513c471d4ccba7111f1e114cf728))
|
|
13
|
+
* Update documentation workflows and bot command handling for improved responses and clarity ([5413db6](https://github.com/patrick204nqh/gem-ci/commit/5413db6dbd683e95c228a48ada17eb48dc78a0ac))
|
|
14
|
+
* Update workflows to ignore documentation paths and disable bot command handling ([af81d10](https://github.com/patrick204nqh/gem-ci/commit/af81d10120883b8b48bea02d817ba7ed427b18f6))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### 🔧 Dependencies
|
|
18
|
+
|
|
19
|
+
* **deps:** Bump flog from 4.8.0 to 4.9.4 ([7711a57](https://github.com/patrick204nqh/gem-ci/commit/7711a57a1abc2d305c7e8a2706658a756e1bedce))
|
|
20
|
+
* **deps:** Bump irb from 1.15.2 to 1.16.0 ([46c2429](https://github.com/patrick204nqh/gem-ci/commit/46c242930a109fdbb8db6e8ab5917f3e0866f503))
|
|
21
|
+
* **deps:** Bump irb from 1.16.0 to 1.17.0 ([5892443](https://github.com/patrick204nqh/gem-ci/commit/589244344e6b1586bc5dfdee31301cc11bd7c7ca))
|
|
22
|
+
* **deps:** Bump json from 2.13.1 to 2.13.2 ([8ae9732](https://github.com/patrick204nqh/gem-ci/commit/8ae973260e288681ebca10ce31691f536ad9a2ee))
|
|
23
|
+
* **deps:** Bump json from 2.18.0 to 2.18.1 ([9726dde](https://github.com/patrick204nqh/gem-ci/commit/9726ddebc1234361b90d4f03c0a31529c7cf308d))
|
|
24
|
+
* **deps:** Bump parser from 3.3.10.0 to 3.3.10.1 ([dc1d30c](https://github.com/patrick204nqh/gem-ci/commit/dc1d30c0c848076afe58ffc72aad12b4f04dd7a7))
|
|
25
|
+
* **deps:** Bump pp from 0.6.2 to 0.6.3 ([ffd8a8c](https://github.com/patrick204nqh/gem-ci/commit/ffd8a8c8f9694853c74b8cf90f15f2dcb7f1126f))
|
|
26
|
+
* **deps:** Bump prism from 1.4.0 to 1.6.0 ([50714ce](https://github.com/patrick204nqh/gem-ci/commit/50714ce0aa3de79e75ce17510fbe4d5ff58dbb38))
|
|
27
|
+
* **deps:** Bump prism from 1.7.0 to 1.8.0 ([64b3a2e](https://github.com/patrick204nqh/gem-ci/commit/64b3a2e29b4d8903b4b113797b9c121cd4a64cfd))
|
|
28
|
+
* **deps:** Bump prism from 1.8.0 to 1.9.0 ([bc92d48](https://github.com/patrick204nqh/gem-ci/commit/bc92d48692c0fcd22295644cf283ed0c7a329560))
|
|
29
|
+
* **deps:** Bump rdoc from 6.14.2 to 7.0.3 ([6a3de7f](https://github.com/patrick204nqh/gem-ci/commit/6a3de7f57790c5ea81d6a60ffa88d68a53e0ff09))
|
|
30
|
+
* **deps:** Bump rdoc from 7.1.0 to 7.2.0 ([83b689f](https://github.com/patrick204nqh/gem-ci/commit/83b689fcecb057d874829dec03485e19ee1b0063))
|
|
31
|
+
* **deps:** Bump rexml from 3.4.1 to 3.4.4 ([986ae9f](https://github.com/patrick204nqh/gem-ci/commit/986ae9fc7f290c8f7cedf215312496baa07e5990))
|
|
32
|
+
* **deps:** Bump rubocop from 1.79.0 to 1.79.1 in the development group ([e086f18](https://github.com/patrick204nqh/gem-ci/commit/e086f18d2e9a19710add532d5b44c565246344ea))
|
|
33
|
+
* **deps:** Bump rubocop from 1.84.1 to 1.84.2 in the development group ([d60b63e](https://github.com/patrick204nqh/gem-ci/commit/d60b63e85ac68e36167999127b192b8e9d1044e9))
|
|
34
|
+
* **deps:** Bump sexp_processor from 4.17.3 to 4.17.4 ([b9fbbde](https://github.com/patrick204nqh/gem-ci/commit/b9fbbde5ff838b3ab2b468c8d234889887957e70))
|
|
35
|
+
* **deps:** Bump stringio from 3.1.7 to 3.2.0 ([2fbc635](https://github.com/patrick204nqh/gem-ci/commit/2fbc635e8a7b2f8dee07612989dc591bea1fea8d))
|
|
36
|
+
* **deps:** Bump the development group across 1 directory with 2 updates ([e860fb4](https://github.com/patrick204nqh/gem-ci/commit/e860fb401ac712c9159f1e40b84a2f6d2e89ad41))
|
|
37
|
+
* **deps:** Bump the development group across 1 directory with 3 updates ([864cc97](https://github.com/patrick204nqh/gem-ci/commit/864cc97a3515c7b12e75562e5e6eec19a287a761))
|
|
38
|
+
* **deps:** Bump the development group across 1 directory with 7 updates ([6d41263](https://github.com/patrick204nqh/gem-ci/commit/6d4126349cbfe8a4c62a8089fdcb69e1bb2add68))
|
|
39
|
+
* **deps:** Bump the development group with 2 updates ([908ae24](https://github.com/patrick204nqh/gem-ci/commit/908ae24dbc6e5d50eb0cd8c95fc9ce30073ae53d))
|
|
40
|
+
* **deps:** Bump unicode-display_width from 3.1.5 to 3.2.0 ([7d5fb0d](https://github.com/patrick204nqh/gem-ci/commit/7d5fb0d6a86a0c4621ef3366c0a899f2581d32b3))
|
|
41
|
+
* **deps:** Bump unicode-emoji from 4.0.4 to 4.1.0 ([e3ad109](https://github.com/patrick204nqh/gem-ci/commit/e3ad1096285f4afea4fc2361f0bbac66235376e0))
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### 🤖 CI/CD
|
|
45
|
+
|
|
46
|
+
* **deps:** Bump codecov/codecov-action from 3 to 5 ([46ca4b4](https://github.com/patrick204nqh/gem-ci/commit/46ca4b48a4df965c82e9a04310f9ab67d6e3756b))
|
|
47
|
+
* **deps:** Bump codecov/codecov-action from 3 to 5 ([1f55fff](https://github.com/patrick204nqh/gem-ci/commit/1f55fffb56dba53f524f7a2dcdae723855b0272a))
|
|
48
|
+
* **deps:** Bump dorny/test-reporter from 1 to 2 ([8af47c1](https://github.com/patrick204nqh/gem-ci/commit/8af47c11c135cae9c3043c22572ea1c5b65abdfb))
|
|
49
|
+
* **deps:** Bump dorny/test-reporter from 1 to 2 ([c0d6566](https://github.com/patrick204nqh/gem-ci/commit/c0d65662609472ef7b0417772b62985ed697ad67))
|
|
50
|
+
* **deps:** Bump github/codeql-action from 3 to 4 in the security-actions group ([0388e62](https://github.com/patrick204nqh/gem-ci/commit/0388e62f06d4e1472a757af653bacb3ffbb36ce3))
|
|
51
|
+
* **deps:** Bump github/codeql-action in the security-actions group ([c99445e](https://github.com/patrick204nqh/gem-ci/commit/c99445e289345c5824a90228e4f1be18fc68bb88))
|
|
52
|
+
* **deps:** Bump peaceiris/actions-gh-pages from 3 to 4 ([b6dd928](https://github.com/patrick204nqh/gem-ci/commit/b6dd928a625ddee23e9294e0e354846f829818a2))
|
|
53
|
+
* **deps:** Bump peaceiris/actions-gh-pages from 3 to 4 ([e5f7d67](https://github.com/patrick204nqh/gem-ci/commit/e5f7d67d82e2074153a4885432df49285b70b93b))
|
|
54
|
+
* **deps:** Bump softprops/action-gh-release from 1 to 2 ([4458dab](https://github.com/patrick204nqh/gem-ci/commit/4458dab84ec0684ec5b89a5e49d9c8bc42806aba))
|
|
55
|
+
* **deps:** Bump softprops/action-gh-release from 1 to 2 ([12b925a](https://github.com/patrick204nqh/gem-ci/commit/12b925a22df7abb8ef905c338cd760210ead1510))
|
|
56
|
+
* **deps:** Bump the github-actions group across 1 directory with 7 updates ([22ca5ff](https://github.com/patrick204nqh/gem-ci/commit/22ca5ff54537e94ea11f03a43589a0089c79c41e))
|
|
57
|
+
* **deps:** Bump the github-actions group across 1 directory with 7 updates ([3972d4e](https://github.com/patrick204nqh/gem-ci/commit/3972d4ec746d3d1c0ac5feba0661bde505a0ff4e))
|
|
58
|
+
* **deps:** Bump the github-actions group with 4 updates ([0f4e73d](https://github.com/patrick204nqh/gem-ci/commit/0f4e73dede25b6dadcc4bbf6864ee19b78cf3a4d))
|
|
59
|
+
* **deps:** Bump the github-actions group with 4 updates ([0ddb51c](https://github.com/patrick204nqh/gem-ci/commit/0ddb51c57af96463a84f31bb8d8002d2344f0cee))
|
|
60
|
+
|
|
61
|
+
## [0.4.0](https://github.com/patrick204nqh/gem-ci/compare/gem-ci-v0.3.0...gem-ci/v0.4.0) (2025-07-27)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
### 🚀 Features
|
|
65
|
+
|
|
66
|
+
* Add composite actions for performance monitoring, command retry, test execution, and environment setup ([a4ffac6](https://github.com/patrick204nqh/gem-ci/commit/a4ffac66b796e7a22ee857d20fc4aed6d4c6717a))
|
|
67
|
+
* Add Dependabot configuration for automated dependency updates ([14e2b9b](https://github.com/patrick204nqh/gem-ci/commit/14e2b9b0b09bc4fc308ecb9eb594cdcc41650aaf))
|
|
68
|
+
* Add GitFlow guide and workflow diagram for gem-ci projects ([bccdf0b](https://github.com/patrick204nqh/gem-ci/commit/bccdf0b056fe181ae0586f370a0a5da25dc65d77))
|
|
69
|
+
* Add GitHub App token generation for PR status updates ([3662c2e](https://github.com/patrick204nqh/gem-ci/commit/3662c2e1366142051eb40a96a61944a2cb1bc72a))
|
|
70
|
+
* Add local testing scripts for gem-ci workflows ([37ac022](https://github.com/patrick204nqh/gem-ci/commit/37ac0224a74d6410bc31f796333271a8330c6a47))
|
|
71
|
+
* Add markdownlint configuration with relaxed rules for better developer experience ([e8e905a](https://github.com/patrick204nqh/gem-ci/commit/e8e905a088200bb094630558ec02e5fc283b9620))
|
|
72
|
+
* Add release management configuration and update gem structure ([bd8ae0c](https://github.com/patrick204nqh/gem-ci/commit/bd8ae0c5774f7be38211b8aa14423d87ae72edbf))
|
|
73
|
+
* **ci:** Add PR status update action for CI, Security, and Quality workflows ([b9a42d9](https://github.com/patrick204nqh/gem-ci/commit/b9a42d97c4a8bd750bb87b29415929784e058261))
|
|
74
|
+
* Enhance PR status comment with structured table for workflow results ([3f3520d](https://github.com/patrick204nqh/gem-ci/commit/3f3520df4f1263059fe8ac76379e0bccee2a8326))
|
|
75
|
+
* Implement GitHub reaction actions for PRs, releases, and comments ([4fb4d24](https://github.com/patrick204nqh/gem-ci/commit/4fb4d24b4ca354128674f6b0ca3997cf977f0388))
|
|
76
|
+
* Refactor bot command workflow to enhance command handling and response structure ([5262bc3](https://github.com/patrick204nqh/gem-ci/commit/5262bc38441df89ad1f51fb99f95a337e7e20ec2))
|
|
77
|
+
* Update Ruby version in branch protection and push restrictions; add GitHub App token generation to ecosystem workflow ([611cd3e](https://github.com/patrick204nqh/gem-ci/commit/611cd3e37d64b5e290d73e9feebe28e306a4d6d6))
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
### 🐛 Bug Fixes
|
|
81
|
+
|
|
82
|
+
* Add missing checkout step in stale management job ([679a603](https://github.com/patrick204nqh/gem-ci/commit/679a60377930993c42745f6cc0c0b7f24781961c))
|
|
83
|
+
* Correct description formatting for sponsored label in labels.yml ([a013d1c](https://github.com/patrick204nqh/gem-ci/commit/a013d1c1a4a6462eb53b13bc783095858ac9ad6f))
|
|
84
|
+
* Improve command execution readability in CI jobs ([c54b578](https://github.com/patrick204nqh/gem-ci/commit/c54b578385c3eabe2c1ee54c9c4ad731daa4ff09))
|
|
85
|
+
* Improve description formatting in gemspec for better readability ([447313f](https://github.com/patrick204nqh/gem-ci/commit/447313f12a96970181f5472a2b575ff2a6349b81))
|
|
86
|
+
* Simplify command execution in CI jobs for better readability ([aa9a8d2](https://github.com/patrick204nqh/gem-ci/commit/aa9a8d2135852ff7639fa1cbc46667ea3d90949e))
|
|
87
|
+
* Update gemspec metadata to include homepage URI and correct documentation URI ([02dfb2b](https://github.com/patrick204nqh/gem-ci/commit/02dfb2ba4c5c60a56123a4e00bbd56beef5e1b1e))
|
|
88
|
+
* Update label configuration file paths in workflows ([94937a3](https://github.com/patrick204nqh/gem-ci/commit/94937a345cd3b779474fa59bc2571a3b9f83d751))
|
|
89
|
+
* Update sponsored label description and adjust workflow triggers for label synchronization ([533ef4a](https://github.com/patrick204nqh/gem-ci/commit/533ef4aba474b5262596e1c34ad57c200987f1bd))
|
|
90
|
+
* Update super-linter to version 6 and add filter to exclude coverage files ([229a28c](https://github.com/patrick204nqh/gem-ci/commit/229a28c46f20581c64253bd1bbd20dfd7e6a6dbd))
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
### 📚 Documentation
|
|
94
|
+
|
|
95
|
+
* Add README for validation workflows and their purposes ([14e2b9b](https://github.com/patrick204nqh/gem-ci/commit/14e2b9b0b09bc4fc308ecb9eb594cdcc41650aaf))
|
|
96
|
+
* Create GitHub App setup guide for branded automation ([14e2b9b](https://github.com/patrick204nqh/gem-ci/commit/14e2b9b0b09bc4fc308ecb9eb594cdcc41650aaf))
|
|
97
|
+
* Create repository secrets setup guide for automation workflows ([14e2b9b](https://github.com/patrick204nqh/gem-ci/commit/14e2b9b0b09bc4fc308ecb9eb594cdcc41650aaf))
|
|
98
|
+
* Revise main README to enhance clarity and detail on automation features ([14e2b9b](https://github.com/patrick204nqh/gem-ci/commit/14e2b9b0b09bc4fc308ecb9eb594cdcc41650aaf))
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
### 🔧 Dependencies
|
|
102
|
+
|
|
103
|
+
* **deps:** Bump json from 2.13.0 to 2.13.1 ([ae45255](https://github.com/patrick204nqh/gem-ci/commit/ae4525555a35d1a017b532568fed312fdde1841f))
|
|
104
|
+
* **deps:** Bump rubocop from 1.78.0 to 1.79.0 in the development group ([01e4bc0](https://github.com/patrick204nqh/gem-ci/commit/01e4bc0da2e43ce48998756f1b18b743aa2d49cc))
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
### ♻️ Refactoring
|
|
108
|
+
|
|
109
|
+
* **ci-cd:** Remove legacy Ruby workflow and add validation workflows for GitHub App, labels synchronization, repository rulesets, and Slack integration. Update Gemfile with new dependencies for testing and coverage reporting. Enhance spec helper for coverage metrics and clean up existing tests. ([6365ae2](https://github.com/patrick204nqh/gem-ci/commit/6365ae2ef85b92673bd75399ac2adf0d65e82aff))
|
|
110
|
+
* Rename community management workflow for clarity ([14e2b9b](https://github.com/patrick204nqh/gem-ci/commit/14e2b9b0b09bc4fc308ecb9eb594cdcc41650aaf))
|
|
111
|
+
* Rename ecosystem integration workflow for clarity ([14e2b9b](https://github.com/patrick204nqh/gem-ci/commit/14e2b9b0b09bc4fc308ecb9eb594cdcc41650aaf))
|
|
112
|
+
* Rename monitoring workflow for clarity ([14e2b9b](https://github.com/patrick204nqh/gem-ci/commit/14e2b9b0b09bc4fc308ecb9eb594cdcc41650aaf))
|
|
113
|
+
* Rename quality workflow for clarity ([14e2b9b](https://github.com/patrick204nqh/gem-ci/commit/14e2b9b0b09bc4fc308ecb9eb594cdcc41650aaf))
|
|
114
|
+
* Rename release management workflow for clarity ([14e2b9b](https://github.com/patrick204nqh/gem-ci/commit/14e2b9b0b09bc4fc308ecb9eb594cdcc41650aaf))
|
|
115
|
+
* Rename security workflow for clarity ([14e2b9b](https://github.com/patrick204nqh/gem-ci/commit/14e2b9b0b09bc4fc308ecb9eb594cdcc41650aaf))
|
|
116
|
+
* Replace GitHub App token action with local implementation for consistency across workflows ([715ba16](https://github.com/patrick204nqh/gem-ci/commit/715ba1642dece92a85534b671c85bba362976766))
|
|
117
|
+
* Replace performance-monitor action with inline command execution in CI jobs ([d8d9ff6](https://github.com/patrick204nqh/gem-ci/commit/d8d9ff6d8b609eb99d57e4a5cf337a08612382f3))
|
|
118
|
+
* Simplify CI workflows and enhance monitoring with basic health checks and summaries ([ad0c84a](https://github.com/patrick204nqh/gem-ci/commit/ad0c84ae798c8474b53b2be13d476fc90f3fbb7c))
|
|
119
|
+
* Standardize labeler.yml structure for file change types ([b34df93](https://github.com/patrick204nqh/gem-ci/commit/b34df9383345ac7c76ff4c3586fc5bec83933956))
|
|
120
|
+
* Standardize workflow names and update branch references to main and master ([017b4cf](https://github.com/patrick204nqh/gem-ci/commit/017b4cf1b284d62bdb676728df0cc97912dd9a43))
|
|
121
|
+
* Update CI/CD workflows to use default branch variable and adjust README for Ruby versions ([c0abddc](https://github.com/patrick204nqh/gem-ci/commit/c0abddcb159ef12a7c2e401864e46a3cb828771f))
|
|
122
|
+
* Update GitHub Actions workflows for improved error handling and metrics output ([0d07488](https://github.com/patrick204nqh/gem-ci/commit/0d07488e7f1d14f4fcc6b944e0abc18205fb2ea9))
|
|
123
|
+
* Update labeler configuration and enhance CI workflows with repository checkout steps ([d13d065](https://github.com/patrick204nqh/gem-ci/commit/d13d065eb48d106e0791811421966a9c07cabae5))
|
|
124
|
+
* Update security and ecosystem workflows for improved pull request handling and reduce matrix size ([caacb33](https://github.com/patrick204nqh/gem-ci/commit/caacb3354718edd7a76b0b247b265beea06e7eaa))
|
|
125
|
+
* Update workflow names and improve branch protection rules; enhance label configurations ([79c58d2](https://github.com/patrick204nqh/gem-ci/commit/79c58d258fc83aa690843c166a68fac1e0a97e5c))
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
### 🤖 CI/CD
|
|
129
|
+
|
|
130
|
+
* **deps:** Bump github/codeql-action from 2 to 3 in the security-actions group ([3a87434](https://github.com/patrick204nqh/gem-ci/commit/3a87434d016875f20d0d65342cad8c4261baa08a))
|
|
131
|
+
* **deps:** Bump github/codeql-action in the security-actions group ([2cecda3](https://github.com/patrick204nqh/gem-ci/commit/2cecda34c7afa72919ab1f337dc94287e6b492c7))
|
|
132
|
+
* **deps:** Bump github/super-linter from 4 to 7 in the quality-actions group ([394950e](https://github.com/patrick204nqh/gem-ci/commit/394950e4690a1e5b2560f8e24df3dc977ec55fec))
|
|
133
|
+
* **deps:** Bump github/super-linter in the quality-actions group ([48573f1](https://github.com/patrick204nqh/gem-ci/commit/48573f1a80df84e1222ce72e33d0527b61a3bb72))
|
|
134
|
+
* **deps:** Bump the github-actions group across 1 directory with 3 updates ([71f9254](https://github.com/patrick204nqh/gem-ci/commit/71f9254aa0670b7b0fa1f9fc5240bc7ecaff2cb1))
|
|
135
|
+
* **deps:** Bump the github-actions group across 1 directory with 3 updates ([0c55db5](https://github.com/patrick204nqh/gem-ci/commit/0c55db53910128174b982ac9e4f9663605be6cae))
|
|
136
|
+
* **saving-cost:** Add auto-labeling and repository labels configuration; update workflows for Slack notifications and command handling ([7cbd8de](https://github.com/patrick204nqh/gem-ci/commit/7cbd8de140a0182d06a095dbca009383587c8144))
|
|
137
|
+
* **workflows:** Refactor GitHub Actions and Documentation ([bf9bca1](https://github.com/patrick204nqh/gem-ci/commit/bf9bca1d0dfe6e3ac7c508231a0e8afea4a9d633))
|
|
138
|
+
|
|
139
|
+
## [0.3.0](https://github.com/patrick204nqh/gem-ci/compare/gem-ci/v0.2.1...gem-ci/v0.3.0) (2025-07-27)
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
### 🚀 Features
|
|
143
|
+
|
|
144
|
+
* Add GitFlow guide and workflow diagram for gem-ci projects ([bccdf0b](https://github.com/patrick204nqh/gem-ci/commit/bccdf0b056fe181ae0586f370a0a5da25dc65d77))
|
|
145
|
+
* Add GitHub App token generation for PR status updates ([3662c2e](https://github.com/patrick204nqh/gem-ci/commit/3662c2e1366142051eb40a96a61944a2cb1bc72a))
|
|
146
|
+
* Add local testing scripts for gem-ci workflows ([37ac022](https://github.com/patrick204nqh/gem-ci/commit/37ac0224a74d6410bc31f796333271a8330c6a47))
|
|
147
|
+
* **ci:** Add PR status update action for CI, Security, and Quality workflows ([b9a42d9](https://github.com/patrick204nqh/gem-ci/commit/b9a42d97c4a8bd750bb87b29415929784e058261))
|
|
148
|
+
* Enhance PR status comment with structured table for workflow results ([3f3520d](https://github.com/patrick204nqh/gem-ci/commit/3f3520df4f1263059fe8ac76379e0bccee2a8326))
|
|
149
|
+
* Implement GitHub reaction actions for PRs, releases, and comments ([4fb4d24](https://github.com/patrick204nqh/gem-ci/commit/4fb4d24b4ca354128674f6b0ca3997cf977f0388))
|
|
150
|
+
* Refactor bot command workflow to enhance command handling and response structure ([5262bc3](https://github.com/patrick204nqh/gem-ci/commit/5262bc38441df89ad1f51fb99f95a337e7e20ec2))
|
|
151
|
+
* Update Ruby version in branch protection and push restrictions; add GitHub App token generation to ecosystem workflow ([611cd3e](https://github.com/patrick204nqh/gem-ci/commit/611cd3e37d64b5e290d73e9feebe28e306a4d6d6))
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
### 🐛 Bug Fixes
|
|
155
|
+
|
|
156
|
+
* Update label configuration file paths in workflows ([94937a3](https://github.com/patrick204nqh/gem-ci/commit/94937a345cd3b779474fa59bc2571a3b9f83d751))
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
### 🔧 Dependencies
|
|
160
|
+
|
|
161
|
+
* **deps:** Bump json from 2.13.0 to 2.13.1 ([ae45255](https://github.com/patrick204nqh/gem-ci/commit/ae4525555a35d1a017b532568fed312fdde1841f))
|
|
162
|
+
* **deps:** Bump rubocop from 1.78.0 to 1.79.0 in the development group ([01e4bc0](https://github.com/patrick204nqh/gem-ci/commit/01e4bc0da2e43ce48998756f1b18b743aa2d49cc))
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
### 🤖 CI/CD
|
|
166
|
+
|
|
167
|
+
* **deps:** Bump github/codeql-action from 2 to 3 in the security-actions group ([3a87434](https://github.com/patrick204nqh/gem-ci/commit/3a87434d016875f20d0d65342cad8c4261baa08a))
|
|
168
|
+
* **deps:** Bump github/codeql-action in the security-actions group ([2cecda3](https://github.com/patrick204nqh/gem-ci/commit/2cecda34c7afa72919ab1f337dc94287e6b492c7))
|
|
169
|
+
* **deps:** Bump github/super-linter from 4 to 7 in the quality-actions group ([394950e](https://github.com/patrick204nqh/gem-ci/commit/394950e4690a1e5b2560f8e24df3dc977ec55fec))
|
|
170
|
+
* **deps:** Bump github/super-linter in the quality-actions group ([48573f1](https://github.com/patrick204nqh/gem-ci/commit/48573f1a80df84e1222ce72e33d0527b61a3bb72))
|
|
171
|
+
* **deps:** Bump the github-actions group across 1 directory with 3 updates ([71f9254](https://github.com/patrick204nqh/gem-ci/commit/71f9254aa0670b7b0fa1f9fc5240bc7ecaff2cb1))
|
|
172
|
+
* **deps:** Bump the github-actions group across 1 directory with 3 updates ([0c55db5](https://github.com/patrick204nqh/gem-ci/commit/0c55db53910128174b982ac9e4f9663605be6cae))
|
|
173
|
+
* **saving-cost:** Add auto-labeling and repository labels configuration; update workflows for Slack notifications and command handling ([7cbd8de](https://github.com/patrick204nqh/gem-ci/commit/7cbd8de140a0182d06a095dbca009383587c8144))
|
|
174
|
+
|
|
3
175
|
## [0.2.1](https://github.com/patrick204nqh/gem-ci/compare/gem-ci/v0.2.0...gem-ci/v0.2.1) (2025-07-26)
|
|
4
176
|
|
|
5
177
|
|
data/CONTRIBUTORS.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Contributors
|
|
2
|
+
|
|
3
|
+
Thank you to everyone who has contributed to gem-ci! 🎉
|
|
4
|
+
|
|
5
|
+
## 🤝 How to Contribute
|
|
6
|
+
|
|
7
|
+
We welcome contributions from the community! Here are ways you can help:
|
|
8
|
+
|
|
9
|
+
### 💡 Ideas & Feedback
|
|
10
|
+
- [Report bugs](https://github.com/patrick204nqh/gem-ci/issues/new?template=bug_report.md)
|
|
11
|
+
- [Suggest features](https://github.com/patrick204nqh/gem-ci/issues/new?template=feature_request.md)
|
|
12
|
+
- Share your experience using gem-ci
|
|
13
|
+
|
|
14
|
+
### 📝 Documentation
|
|
15
|
+
- Fix typos or improve clarity
|
|
16
|
+
- Add examples or use cases
|
|
17
|
+
- Translate documentation
|
|
18
|
+
|
|
19
|
+
### 🔧 Code Contributions
|
|
20
|
+
- Fix bugs
|
|
21
|
+
- Implement new features
|
|
22
|
+
- Optimize workflows
|
|
23
|
+
- Add tests
|
|
24
|
+
|
|
25
|
+
### 🧪 Testing
|
|
26
|
+
- Test new features
|
|
27
|
+
- Report compatibility issues
|
|
28
|
+
- Share workflow configurations
|
|
29
|
+
|
|
30
|
+
## 🚀 Getting Started
|
|
31
|
+
|
|
32
|
+
1. Fork the repository
|
|
33
|
+
2. Create a feature branch: `git checkout -b feature/your-feature`
|
|
34
|
+
3. Make your changes
|
|
35
|
+
4. Run tests: `bundle exec rspec`
|
|
36
|
+
5. Submit a pull request
|
|
37
|
+
|
|
38
|
+
## 📋 Contribution Guidelines
|
|
39
|
+
|
|
40
|
+
- Follow the existing code style
|
|
41
|
+
- Add tests for new features
|
|
42
|
+
- Update documentation as needed
|
|
43
|
+
- Use conventional commit messages
|
|
44
|
+
- Be respectful and constructive
|
|
45
|
+
|
|
46
|
+
## 🎯 Current Needs
|
|
47
|
+
|
|
48
|
+
We're especially looking for help with:
|
|
49
|
+
- [ ] Windows compatibility testing
|
|
50
|
+
- [ ] Additional Ruby version support
|
|
51
|
+
- [ ] Integration with more external services
|
|
52
|
+
- [ ] Performance optimizations
|
|
53
|
+
- [ ] Documentation improvements
|
|
54
|
+
|
|
55
|
+
## 📚 Resources
|
|
56
|
+
|
|
57
|
+
- [Development Setup](docs/guides/local-testing.md)
|
|
58
|
+
- [Workflow Overview](docs/workflows/overview.md)
|
|
59
|
+
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
**Want to contribute?** Check out our [good first issue](https://github.com/patrick204nqh/gem-ci/labels/good%20first%20issue) label or join the discussion in [Issues](https://github.com/patrick204nqh/gem-ci/issues).
|
|
64
|
+
|
|
65
|
+
Every contribution, no matter how small, makes gem-ci better for everyone! 🙏
|
data/README.md
CHANGED
|
@@ -1,68 +1,44 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
# 🏆 gem-ci
|
|
4
|
+
|
|
5
|
+
<img src="public/gem-ci-transparent-bg.png" alt="gem-ci Logo" width="200">
|
|
6
|
+
|
|
7
|
+
**The Ultimate Ruby Gem Automation Showcase**
|
|
8
|
+
|
|
9
|
+
*Battle-tested GitHub Actions workflows with comprehensive CI/CD, security, and community management*
|
|
10
|
+
|
|
11
|
+
[](https://www.ruby-lang.org/)
|
|
12
|
+
[](https://github.com/features/actions)
|
|
13
|
+
[](LICENSE.txt)
|
|
14
|
+
[](CONTRIBUTING.md)
|
|
15
|
+
|
|
16
|
+
[](https://github.com/patrick204nqh/gem-ci/actions/workflows/02-ci.yml)
|
|
17
|
+
[](https://github.com/patrick204nqh/gem-ci/actions/workflows/03-security.yml)
|
|
18
|
+
[](https://github.com/patrick204nqh/gem-ci/actions/workflows/04-quality.yml)
|
|
19
|
+
|
|
20
|
+
</div>
|
|
4
21
|
|
|
5
22
|
## ✨ What This Provides
|
|
6
23
|
|
|
7
|
-
|
|
24
|
+
**9 comprehensive workflows** for complete Ruby gem automation:
|
|
8
25
|
|
|
9
|
-
- 🔄 **
|
|
10
|
-
- 🔒 **Security scanning
|
|
11
|
-
- 📊 **
|
|
12
|
-
- 🚀 **
|
|
13
|
-
- 👥 **Community management
|
|
14
|
-
-
|
|
26
|
+
- 🔄 **CI/CD** with consolidated PR dashboard
|
|
27
|
+
- 🔒 **Security** scanning and vulnerability detection
|
|
28
|
+
- 📊 **Quality** enforcement and documentation
|
|
29
|
+
- 🚀 **Releases** with semantic versioning
|
|
30
|
+
- 👥 **Community** management and engagement
|
|
31
|
+
- 🤖 **Bot commands** for workflow control
|
|
15
32
|
|
|
16
33
|
## 🚀 Quick Start
|
|
17
34
|
|
|
18
35
|
1. **Use this template** to create your new repository
|
|
19
|
-
2. **Set up secrets** following the [Secrets Setup Guide](docs/
|
|
36
|
+
2. **Set up secrets** following the [Secrets Setup Guide](docs/setup/secrets.md)
|
|
20
37
|
3. **Configure labels** by running the label sync workflow
|
|
21
38
|
4. **Import rulesets** from `.github/config/rulesets/`
|
|
22
|
-
5. **
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
| **Category** | **Task** | **Workflow** | **Action Used** | **Configuration** |
|
|
27
|
-
| ------------------- | ----------------------- | ---------------------------------------- | ----------------------------------------- | --------------------------- |
|
|
28
|
-
| **🔄 CI/CD** | Multi-Ruby testing | `02-ci.yml` | `ruby/setup-ruby@v1` | Ruby 3.2, 3.3, 3.4 |
|
|
29
|
-
| | Cross-platform testing | `02-ci.yml` | `actions/checkout@v4` | Ubuntu, macOS |
|
|
30
|
-
| | Dependency caching | `02-ci.yml` | `actions/cache@v3` | Bundler cache |
|
|
31
|
-
| | Test execution | `02-ci.yml` | Custom scripts | RSpec, Minitest |
|
|
32
|
-
| | Coverage reporting | `04-quality.yml` | `simplecov` gem | 90% threshold |
|
|
33
|
-
| **🔒 Security** | CodeQL analysis | `03-security.yml` | `github/codeql-action@v3` | `.github/config/codeql.yml` |
|
|
34
|
-
| | Dependency scanning | `03-security.yml` | `actions/dependency-review-action@v4` | Vulnerability detection |
|
|
35
|
-
| | Secret scanning | `03-security.yml` | `trufflesecurity/trufflehog@main` | Git history scan |
|
|
36
|
-
| | Container scanning | `03-security.yml` | `aquasecurity/trivy-action@master` | Dockerfile security |
|
|
37
|
-
| | Bundle audit | `03-security.yml` | `bundler-audit` gem | Gem vulnerabilities |
|
|
38
|
-
| **📊 Quality** | Code linting | `04-quality.yml` | `rubocop/rubocop-github-action@v0.1.0` | RuboCop standards |
|
|
39
|
-
| | Documentation | `04-quality.yml` | `yard` gem | API documentation |
|
|
40
|
-
| | Markdown linting | `04-quality.yml` | `DavidAnson/markdownlint-cli2-action@v16` | Markdown standards |
|
|
41
|
-
| | Super linting | `04-quality.yml` | `super-linter/super-linter@v5` | Multi-language linting |
|
|
42
|
-
| **🏷️ Labels** | Label sync | `01-intake.yml` | `crazy-max/ghaction-github-labeler@v5` | `.github/labels.yml` |
|
|
43
|
-
| | Auto-labeling | `01-intake.yml` | `actions/labeler@v5` | `.github/labeler.yml` |
|
|
44
|
-
| | Size labeling | `01-intake.yml` | Custom script | PR size detection |
|
|
45
|
-
| **👥 Community** | Welcome messages | `01-intake.yml` | `actions/first-interaction@v1` | First-time contributors |
|
|
46
|
-
| | Stale management | `05-community.yml` | `actions/stale@v9` | 60-day stale policy |
|
|
47
|
-
| | Contributor recognition | `05-community.yml` | Custom script | Achievement badges |
|
|
48
|
-
| | Health monitoring | `08-monitoring.yml` | Custom script | Community metrics |
|
|
49
|
-
| **🚀 Release** | Semantic versioning | `06-release.yml` | Custom script | Version bumping |
|
|
50
|
-
| | Changelog generation | `06-release.yml` | Custom script | Auto-generated changelogs |
|
|
51
|
-
| | RubyGems publishing | `06-release.yml` | `ruby/setup-ruby@v1` | Automated gem push |
|
|
52
|
-
| | GitHub releases | `06-release.yml` | `actions/create-release@v1` | Release notes |
|
|
53
|
-
| | Release notifications | `06-release.yml` | `slackapi/slack-github-action@v1.27.0` | Slack integration |
|
|
54
|
-
| **📦 Dependencies** | Dependency updates | Dependabot | GitHub native | `.github/dependabot.yml` |
|
|
55
|
-
| | Security updates | Dependabot | GitHub native | Auto-merge safe updates |
|
|
56
|
-
| | Version grouping | Dependabot | GitHub native | Development/testing groups |
|
|
57
|
-
| **🛡️ Protection** | Branch protection | Rulesets | GitHub native | `.github/config/rulesets/` |
|
|
58
|
-
| | Tag protection | Rulesets | GitHub native | Release tag protection |
|
|
59
|
-
| | Push restrictions | Rulesets | GitHub native | Development branch rules |
|
|
60
|
-
| **📢 Notifications** | Slack integration | Multiple | `slackapi/slack-github-action@v1.27.0` | `SLACK_BOT_TOKEN` |
|
|
61
|
-
| | Email notifications | GitHub native | Repository settings | Configurable recipients |
|
|
62
|
-
| **🧪 Validation** | GitHub App setup | `tests/validate-github-app.yml` | `actions/create-github-app-token@v1` | Token validation |
|
|
63
|
-
| | Slack integration | `tests/validate-slack-integration.yml` | `slackapi/slack-github-action@v1.27.0` | Message testing |
|
|
64
|
-
| | Label sync | `tests/validate-labels-sync.yml` | `crazy-max/ghaction-github-labeler@v5` | Configuration validation |
|
|
65
|
-
| | Repository rulesets | `tests/validate-repository-rulesets.yml` | Custom scripts | Ruleset validation |
|
|
39
|
+
5. **Test locally** using our [Local Testing Guide](docs/guides/local-testing.md)
|
|
40
|
+
6. **Start developing** - automation handles the rest!
|
|
41
|
+
|
|
66
42
|
|
|
67
43
|
## 🔐 Required Setup
|
|
68
44
|
|
|
@@ -78,93 +54,55 @@ This repository serves as the **perfect template** for Ruby gem automation. It i
|
|
|
78
54
|
### **Configuration Files**
|
|
79
55
|
| File | Purpose | Required |
|
|
80
56
|
|------|---------|----------|
|
|
81
|
-
| `.github/labels.yml` | Label definitions and colors | ✅ Yes |
|
|
82
|
-
| `.github/labeler.yml` | Auto-labeling rules | ✅ Yes |
|
|
57
|
+
| `.github/config/labels.yml` | Label definitions and colors | ✅ Yes |
|
|
58
|
+
| `.github/config/labeler.yml` | Auto-labeling rules for PRs | ✅ Yes |
|
|
83
59
|
| `.github/dependabot.yml` | Dependency update configuration | ✅ Yes |
|
|
84
60
|
| `.github/CODEOWNERS` | Code ownership and review assignments | ✅ Yes |
|
|
85
61
|
| `.github/config/codeql.yml` | CodeQL analysis configuration | ✅ Yes |
|
|
62
|
+
| `.github/config/release-please-config.json` | Release configuration | ✅ Yes |
|
|
63
|
+
| `.github/config/release-please-manifest.json` | Release manifest | ✅ Yes |
|
|
86
64
|
| `.github/config/rulesets/*.json` | Repository protection rules | ❌ Optional |
|
|
87
65
|
|
|
88
|
-
|
|
66
|
+
### **Bot Commands**
|
|
67
|
+
<details>
|
|
68
|
+
<summary>Available interactive commands (comment on issues/PRs)</summary>
|
|
89
69
|
|
|
90
|
-
|
|
70
|
+
| Command | Description | Example |
|
|
71
|
+
|---------|-------------|---------|
|
|
72
|
+
| `/gem-ci help` | Show available commands | `/gem-ci help` |
|
|
73
|
+
| `/gem-ci revise release [from] to [to]` | Change release type | `/gem-ci revise release minor to patch` |
|
|
74
|
+
| `/gem-ci cancel release` | Cancel current release PR | `/gem-ci cancel release` |
|
|
91
75
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
- **🔐 Secret Configuration**: Setup GitHub App authentication and integrations
|
|
95
|
-
- **🛡️ Branch Protection**: Configure repository rulesets and security policies
|
|
96
|
-
- **⚙️ Initial Configuration**: Dependabot, CodeQL, and workflow settings
|
|
76
|
+
**Usage**: Comment these commands on any issue or PR to trigger bot actions.
|
|
77
|
+
</details>
|
|
97
78
|
|
|
98
|
-
### 💻 **Phase 2: Development Cycle** (Daily)
|
|
99
|
-
- **🧪 Continuous Testing**: Multi-Ruby version testing with `02-ci.yml`
|
|
100
|
-
- **🔒 Security Scanning**: Vulnerability detection with `03-security.yml`
|
|
101
|
-
- **📊 Code Quality**: RuboCop linting and documentation with `04-quality.yml`
|
|
102
|
-
- **🏷️ Auto-labeling**: Smart PR/issue labeling with `01-intake.yml`
|
|
103
|
-
- **👋 Contributor Welcome**: First-time contributor guidance with `01-intake.yml`
|
|
104
79
|
|
|
105
|
-
|
|
106
|
-
- **🤖 Dependabot Updates**: Weekly dependency update PRs
|
|
107
|
-
- **🧪 Update Testing**: Automated testing of dependency changes
|
|
108
|
-
- **✅ Safe Auto-merge**: Automatic merging of low-risk updates
|
|
80
|
+
## 📚 Documentation
|
|
109
81
|
|
|
110
|
-
|
|
111
|
-
- **🏗️ Gem Building**: Automated gem packaging with `06-release.yml`
|
|
112
|
-
- **💎 RubyGems Publishing**: Direct publishing to RubyGems registry
|
|
113
|
-
- **📝 Changelog Generation**: Automatic changelog and release notes
|
|
114
|
-
- **📢 Release Notifications**: Slack and GitHub release announcements
|
|
82
|
+
Complete documentation is available on our **[Documentation Site](https://patrick204nqh.github.io/gem-ci/)** including:
|
|
115
83
|
|
|
116
|
-
|
|
117
|
-
-
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
- **👥 Community Engagement**: Contributor recognition and community health
|
|
84
|
+
- **🚀 Getting Started**: Setup guides, secrets configuration, and local testing
|
|
85
|
+
- **📊 Workflows**: Complete workflow documentation and architecture overview
|
|
86
|
+
- **🎯 Advanced Features**: Customization, integrations, and bot commands
|
|
87
|
+
- **✅ Validation**: Testing and troubleshooting guides
|
|
121
88
|
|
|
122
|
-
|
|
89
|
+
### **🧪 Quick Local Testing**
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Setup (one time)
|
|
93
|
+
cp .secrets.example .secrets && nano .secrets
|
|
94
|
+
|
|
95
|
+
# Test workflows locally
|
|
96
|
+
./scripts/test-local # Test push workflows
|
|
97
|
+
./scripts/test-local ci # Test CI workflow
|
|
98
|
+
./scripts/test-workflows # Run validation tests
|
|
99
|
+
```
|
|
123
100
|
|
|
124
|
-
|
|
125
|
-
- **[🔐 Secrets Setup Guide](docs/SECRETS_SETUP_GUIDE.md)** - Complete secrets configuration
|
|
126
|
-
- **[🧪 Manual Testing Guide](docs/MANUAL_WORKFLOW_TESTING.md)** - How to test and trigger workflows manually
|
|
127
|
-
- **[🏷️ Labels Color Guide](docs/LABELS_COLOR_GUIDE.md)** - Label design and accessibility
|
|
128
|
-
- **[✅ Validation Workflows](.github/workflows/tests/README.md)** - Testing your setup
|
|
101
|
+
**[📖 View Testing Scripts Documentation](scripts/README.md)**
|
|
129
102
|
|
|
130
103
|
## 🎯 Key Features
|
|
131
104
|
|
|
132
|
-
|
|
133
|
-
- Tests across Ruby 3.2, 3.3 and 3.4
|
|
134
|
-
- Cross-platform support (Ubuntu, macOS)
|
|
135
|
-
- Parallel test execution for speed
|
|
136
|
-
|
|
137
|
-
### **🔒 Comprehensive Security**
|
|
138
|
-
- CodeQL static analysis
|
|
139
|
-
- Dependency vulnerability scanning
|
|
140
|
-
- Secret detection in git history
|
|
141
|
-
- Container security scanning
|
|
142
|
-
- Automated security updates
|
|
143
|
-
|
|
144
|
-
### **📊 Quality Enforcement**
|
|
145
|
-
- RuboCop code style enforcement
|
|
146
|
-
- Test coverage reporting (90% threshold)
|
|
147
|
-
- Documentation coverage checking
|
|
148
|
-
- Markdown and YAML linting
|
|
149
|
-
|
|
150
|
-
### **🚀 Automated Releases**
|
|
151
|
-
- Semantic version bumping
|
|
152
|
-
- Automated changelog generation
|
|
153
|
-
- RubyGems publishing
|
|
154
|
-
- GitHub release creation
|
|
155
|
-
- Slack release notifications
|
|
156
|
-
|
|
157
|
-
### **👥 Community Management**
|
|
158
|
-
- Welcome messages for new contributors
|
|
159
|
-
- Stale issue/PR management
|
|
160
|
-
- Contributor achievement recognition
|
|
161
|
-
- Community health monitoring
|
|
162
|
-
|
|
163
|
-
### **🏷️ Smart Labeling**
|
|
164
|
-
- 33 professionally designed labels
|
|
165
|
-
- Automatic labeling based on file changes
|
|
166
|
-
- PR size detection and labeling
|
|
167
|
-
- Accessible color scheme (WCAG AA compliant)
|
|
105
|
+
**75-80% cost reduction** • **Consolidated PR dashboard** • **Interactive bot commands** • **Comprehensive security** • **Automated releases**
|
|
168
106
|
|
|
169
107
|
## 🤝 Contributing
|
|
170
108
|
|
data/docs/Gemfile
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
# Jekyll and theme
|
|
6
|
+
gem "jekyll", "~> 4.3.0"
|
|
7
|
+
gem "jekyll-theme-cayman", "~> 0.2.0"
|
|
8
|
+
|
|
9
|
+
# Jekyll plugins
|
|
10
|
+
gem "jekyll-feed", "~> 0.12"
|
|
11
|
+
gem "jekyll-seo-tag", "~> 2.8"
|
|
12
|
+
gem "jekyll-sitemap", "~> 1.4"
|
|
13
|
+
|
|
14
|
+
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
|
15
|
+
# and associated library.
|
|
16
|
+
platforms :mingw, :x64_mingw, :mswin, :jruby do
|
|
17
|
+
gem "tzinfo", ">= 1", "< 3"
|
|
18
|
+
gem "tzinfo-data"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Performance-booster for watching directories on Windows
|
|
22
|
+
gem "wdm", "~> 0.1.1", platforms: %i[mingw x64_mingw mswin]
|
|
23
|
+
|
|
24
|
+
# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
|
|
25
|
+
# do not have a Java counterpart.
|
|
26
|
+
gem "http_parser.rb", "~> 0.6.0", platforms: %i[jruby]
|
|
27
|
+
|
|
28
|
+
# GitHub Pages compatibility
|
|
29
|
+
gem "webrick", "~> 1.8"
|
|
30
|
+
|
|
31
|
+
# Fix Ruby 3.4.0 compatibility warnings
|
|
32
|
+
gem "base64", "~> 0.1"
|
|
33
|
+
gem "csv", "~> 3.2"
|