{"id":20895704,"url":"https://github.com/juanvilla424/github-cicd-template","last_synced_at":"2026-03-03T05:12:49.251Z","repository":{"id":262370181,"uuid":"875053786","full_name":"JuanVilla424/github-cicd-template","owner":"JuanVilla424","description":"Github CICD Template Repository - https://template.bridgefusion.icu","archived":false,"fork":false,"pushed_at":"2025-03-10T17:05:32.000Z","size":205,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-10T17:05:38.976Z","etag":null,"topics":["base","baseline","cicd","docs","github","template"],"latest_commit_sha":null,"homepage":"https://template.bridgefusion.icu/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JuanVilla424.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"na0nh"}},"created_at":"2024-10-19T01:45:30.000Z","updated_at":"2024-11-12T03:30:13.000Z","dependencies_parsed_at":"2024-11-12T04:33:24.512Z","dependency_job_id":null,"html_url":"https://github.com/JuanVilla424/github-cicd-template","commit_stats":null,"previous_names":["juanvilla424/github-cicd-template"],"tags_count":34,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuanVilla424%2Fgithub-cicd-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuanVilla424%2Fgithub-cicd-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuanVilla424%2Fgithub-cicd-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuanVilla424%2Fgithub-cicd-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuanVilla424","download_url":"https://codeload.github.com/JuanVilla424/github-cicd-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243280087,"owners_count":20265951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["base","baseline","cicd","docs","github","template"],"created_at":"2024-11-18T10:29:57.602Z","updated_at":"2026-03-03T05:12:49.243Z","avatar_url":"https://github.com/JuanVilla424.png","language":"TypeScript","funding_links":["https://ko-fi.com/na0nh"],"categories":[],"sub_categories":[],"readme":"# 📄 GitHub CI/CD Template\n\n![CI/CD](https://img.shields.io/badge/CI/CD-Pipeline-blue)\n![Python](https://img.shields.io/badge/Python-3776AB?logo=python\u0026logoColor=fff)\n![Python](https://img.shields.io/badge/Python-3.11%2B-blue.svg)\n![Build Status](https://github.com/JuanVilla424/github-cicd-template/actions/workflows/ci.yml/badge.svg?branch=main)\n![Status](https://img.shields.io/badge/Status-Stable-green.svg)\n![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)\n\nWelcome to the **GitHub CI/CD Template** repository! This project provides a robust and flexible CI/CD pipeline setup using GitHub Actions, tailored for project using Python for backend, node frontend, docker-compose or Dockerfile. Leverage this template to automate your development workflow, from testing and building to deployment and monitoring.\n\n\u003cimg src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.pngkey.com%2Fpng%2Ffull%2F178-1787243_github-icon-png.png\u0026f=1\u0026nofb=1\u0026ipt=913bc5d745baa725efe14b20bdf6ca3f91044c2be909e8504cc79f13dc0b1729\u0026ipo=images\" width=\"112\" alt=\"CI/CD\"\u003e\n\n## 📚 Table of Contents\n\n- [Features](#-features)\n- [Getting Started](#-getting-started)\n  - [Prerequisites](#-prerequisites)\n  - [Installation](#-installation)\n  - [Environment Setup](#-environment-setup)\n  - [Pre-Commit Hooks](#-pre-commit-hooks)\n  - [Extra Steps](#-extra-steps)\n- [Usage](#-usage)\n- [Contributing](#-contributing)\n- [License](#-license)\n- [Contact](#-contact)\n\n## 🌟 Features\n\n- **Automated Testing:** Run tests automatically on each push and pull request.\n- **Continuous Deployment:** Deploy your application seamlessly to your chosen platform.\n- **Code Quality Checks:** Enforce coding standards with linting and formatting tools.\n- **Build Optimization:** Optimize build processes for faster deployment cycles.\n- **Notifications:** Receive updates and alerts on pipeline status via email or chat integrations.\n- **Automated Version Control:** Automatic version bumping, tagging, and promotion across branches (dev → test → prod → main).\n- **Automated Release Notes:** GitHub Releases with categorized changelogs generated from conventional commits (Features, Bug Fixes, Refactors, etc.).\n- **Changelog Generation:** Automatic CHANGELOG.md updates on every version bump via pre-commit hooks.\n\n## 🚀 Getting Started\n\n### 📋 Prerequisites\n\n**Before you begin, ensure you have met the following requirements**:\n\n- **GitHub Account:** You need a GitHub account to use GitHub Actions.\n- **Python 3.12+:** Ensure Python is installed on your local machine.\n- **Git:** Install [Git](https://git-scm.com/) to clone the repository.\n- **NVM:** (Optional) Node.js installation environment versions control\n- **Node.js 22.x+**: (Optional) (Required to Push) Used as lint orchestration manager in pre-commit and pre-push\n\n### 🔨 Installation\n\n1. **Clone the Repository**\n\n   ```bash\n   git clone https://github.com/JuanVilla424/github-cicd-template.git\n   ```\n\n2. Navigate to the Project Directory\n   ```bash\n    cd github-cicd-template\n   ```\n\n### 🔧 Environment Setup\n\n**Mandatory: Setting Up a Python Virtual Environment**\n\nSetting up a Python virtual environment ensures that dependencies are managed effectively and do not interfere with other projects.\n\n1. **Create a Virtual Environment**\n\n   ```bash\n   python -m venv venv\n   ```\n\n2. **Activate the Virtual Environment**\n\n   On Unix or MacOS:\n\n   ```bash\n   source venv/bin/activate\n   ```\n\n   On Windows:\n\n   ```bash\n    .\\venv\\Scripts\\activate\n   ```\n\n   - or\n\n   ```bash\n    powershell.exe -ExecutionPolicy Bypass -File .\\venv\\Scripts\\Activate.ps1\n   ```\n\n3. **Upgrade pip**\n\n   ```bash\n   pip install --upgrade pip\n   ```\n\n4. **Install Dependencies**\n\n   ```bash\n   pip install -r requirements.txt\n   pip install poetry\n   poetry lock\n   poetry install\n   ```\n\n   - Deactivate the Virtual Environment\n\n   When you're done, deactivate the environment:\n\n   ```bash\n    deactivate\n   ```\n\n5. **Docker Extra Steps**: Install Scoop and then install hadolint using scoop, refer to [Extra Steps](#-extra-steps)\n\n### 🛸 Pre-Commit Hooks\n\n**Install and check pre-commit hooks**: MD files changes countermeasures, python format, python lint, yaml format, yaml lint, version control hook, changelog auto-generation\n\n```bash\npre-commit install\npre-commit install -t pre-commit\npre-commit install -t pre-push\npre-commit autoupdate\npre-commit run --all-files\n```\n\n### 📌 Extra Steps\n\n1. **Docker**:\n   - Using MacOs or Linux:\n     ```bash\n     brew install hadolint\n     ```\n   - On Windows **as non-admin user**:\n     ```bash\n     Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser\n     Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression\n     scoop install hadolint\n     ```\n\n## 🛠️ Usage\n\n**To utilize the CI/CD pipeline, follow these steps**:\n\n1. **Configure GitHub Actions**\n   - Navigate to the .github/workflows/ directory.\n   - Customize the ci.yml file according to your project's requirements.\n   - Customize the python.yml file to format and lint python code.\n   - Customize the node.yml file to format and lint node.js code if you are hosting frontend.\n   - Customize the release-controller file to add or remove **[backend, frontend, docker deployment, database]**\n\n2. **Set Up Secrets**\n   - Go to your GitHub repository settings.\n   - Navigate to Secrets and add necessary secrets like CODECOV_KEY, etc.\n   - Add `ACCESS_TOKEN` (Personal Access Token) for cross-repository submodule access and workflow triggers.\n\n3. **Triggering the Pipeline**\n   - Push to Branches: Pushing code to dev, test, prod, or main branches will trigger the pipeline.\n   - Pull Requests: Opening or updating pull requests will run tests and checks.\n\n4. **Version Bumping \u0026 Releases**\n   - Add `[patch candidate]`, `[minor candidate]`, or `[major candidate]` to your commit message to trigger a version bump.\n   - The pre-push hooks will automatically bump the version in `pyproject.toml` and amend the commit.\n   - The Version Controller workflow creates tags and promotion PRs across the branch chain (dev → test → prod → main).\n   - On main, a GitHub Release is automatically created with categorized release notes parsed from conventional commits.\n\n5. **Monitoring Pipeline Status**\n   - Check the Actions tab in your GitHub repository to monitor the status of your workflows.\n   - Integrate notifications with Slack, Email, or other communication tools for real-time updates.\n\n## 🤝 Contributing\n\n**Contributions are welcome! To contribute to this repository, please follow these steps**:\n\n1. **Fork the Repository**\n\n2. **Create a Feature Branch**\n\n   ```bash\n   git checkout -b feature/your-feature-name\n   ```\n\n3. **Commit Your Changes**\n\n   ```bash\n   git commit -m \"feat(\u003cscope\u003e): your feature commit message - lower case\"\n   ```\n\n4. **Push to the Branch**\n\n   ```bash\n   git push origin feature/your-feature-name\n   ```\n\n5. **Open a Pull Request into** `dev` **branch**\n\nPlease ensure your contributions adhere to the Code of Conduct and Contribution Guidelines.\n\n### 🛠️ Adding a New Workflow\n\n1. **Create a New Workflow File**\n\n   ```bash\n   touch .github/workflows/new-workflow.yml\n   ```\n\n2. **Define the Workflow**\n\n   Customize the workflow according to your needs, using existing workflows as references.\n\n3. **Commit and Push**\n   ```bash\n   git add .github/workflows/new-workflow.yml\n   git commit -m \"chore(core): added new workflow - lower case\"\n   git push origin feature/your-feature-name\n   ```\n\n## 📫 Contact\n\nFor any inquiries or support, please open an issue or contact [r6ty5r296it6tl4eg5m.constant214@passinbox.com](mailto:r6ty5r296it6tl4eg5m.constant214@passinbox.com).\n\n---\n\n## 📜 License\n\n2026 - This project is licensed under the [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html). You are free to use, modify, and distribute this software under the terms of the GPL-3.0 license. For more details, please refer to the [LICENSE](LICENSE) file included in this repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuanvilla424%2Fgithub-cicd-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuanvilla424%2Fgithub-cicd-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuanvilla424%2Fgithub-cicd-template/lists"}