{"id":18676928,"url":"https://github.com/chusiang/continuous-delivery-workshop","last_synced_at":"2025-08-31T19:46:02.553Z","repository":{"id":142952058,"uuid":"109465511","full_name":"chusiang/continuous-delivery-workshop","owner":"chusiang","description":"A simple Continuous Delivery Lab, mirror from GitLab","archived":false,"fork":false,"pushed_at":"2017-11-26T16:57:51.000Z","size":222,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-18T13:11:44.707Z","etag":null,"topics":["ansible","continuous-delivery","devops","docker","gitlab-ci","lab","workshop"],"latest_commit_sha":null,"homepage":"https://gitlab.com/chusiang/continuous-delivery-workshop","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chusiang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-04T04:00:58.000Z","updated_at":"2023-06-30T07:20:59.000Z","dependencies_parsed_at":"2023-03-21T19:32:34.353Z","dependency_job_id":null,"html_url":"https://github.com/chusiang/continuous-delivery-workshop","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/chusiang/continuous-delivery-workshop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chusiang%2Fcontinuous-delivery-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chusiang%2Fcontinuous-delivery-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chusiang%2Fcontinuous-delivery-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chusiang%2Fcontinuous-delivery-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chusiang","download_url":"https://codeload.github.com/chusiang/continuous-delivery-workshop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chusiang%2Fcontinuous-delivery-workshop/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267317601,"owners_count":24068479,"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","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ansible","continuous-delivery","devops","docker","gitlab-ci","lab","workshop"],"created_at":"2024-11-07T09:31:46.518Z","updated_at":"2025-07-27T06:35:27.642Z","avatar_url":"https://github.com/chusiang.png","language":"Makefile","readme":"# Continuous Delivery Workshop with Ansible x GitLab CI\n\n[![build status](https://gitlab.com/chusiang/continuous-delivery-workshop/badges/master/build.svg)](https://gitlab.com/chusiang/continuous-delivery-workshop/commits/master)\n\nThis is a **Continuous Delivery Lab**, and it's fork from [@chusiang/coscup2017-cd-demo](https://gitlab.com/chusiang/coscup2017-cd-demo).\n\n## Overall\n\n![The overall of continuous delivery workshop](image/the_cd_workshop_overall.jpg)\nLoop (Engineer -\u003e Git server -\u003e CI server -\u003e Build stage -\u003e Deploy stage -\u003e Test stage -\u003e Release stage -\u003e Customer).\n\n## The Pipeline\n\n### Build stage\n\nPackage the htdocs to deb file.\n\n1. Architecture of deb file.\n\n    ```\n    $ tree penguin-htdocs\n    penguin-htdocs\n    ├── DEBIAN\n    │   └── control\n    └── var\n        └── www\n            └── html\n                └── index.html\n\n    4 directories, 2 files\n    ```\n\n1. Build the deb file on GitLab CI.\n\n    ```\n    $ dpkg -b penguin-htdocs\n    ```\n\n### Deploy stage\n\nDeploy to staging node, and release to production node with `setup.yml` playbook.\n\n```\n$ ansible-playbook deploy.yml\n```\n\n### Test stage\n\nOnly test the staging with `test.yml` playbook on localhost.\n\n```\n$ ansible-playbook test.yml\n```\n\n### Release stage\n\nRelease to production node with `setup.yml` playbook, too.\n\n```\n$ ansible-playbook -i production deploy.yml\n```\n\n## Reference\n\n### How to build the deb package.\n\n1. [Deb Package 套件封裝教學 | Soul \u0026 Shell Blog](https://blog.toright.com/posts/4434/deb-package-%E5%A5%97%E4%BB%B6%E5%B0%81%E8%A3%9D%E6%95%99%E5%AD%B8.html)\n1. [如何製作「deb 檔 (Debian Package)」 | Ubuntu Basic Skill](https://samwhelp.github.io/book-ubuntu-basic-skill/book/content/package/how-to-build-package.html)\n\n### How to use the Ansible.\n\n1. [《現代 IT 人一定要知道的 Ansible 自動化組態技巧》．GitHub](https://github.com/chusiang/automate-with-ansible)\n\n### Reference slides\n\n1. [Git and Github basic with SourceTree](http://note.drx.tw/2015/05/git-and-github-basic-with-sourcetree.html)\n1. [現代 IT 人一定要知道的 Ansible 自動化組態技巧 (3/e)](http://note.drx.tw/2017/03/automate-with-ansible-basic-3e.html)\n1. [前端工程師一定要知道的 Docker 虛擬化容器技巧](http://note.drx.tw/2016/07/virtualization-with-docker-container-basic-for-f2e.html)\n1. [DevOps 人一定要知道的 Ansible \u0026 GitLab CI 持續交付技巧](http://note.drx.tw/2017/08/continuous-delivery-with-ansible-x-gitlab-ci.html)\n\n## License\n\nCopyright (c) [chusiang][chusiang] from 2017 under the MIT license.\n\n[chusiang]: https://github.com/chusiang/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchusiang%2Fcontinuous-delivery-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchusiang%2Fcontinuous-delivery-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchusiang%2Fcontinuous-delivery-workshop/lists"}