Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/link-/ci-cd-intro
Intro to CI/CD 💻 ☁️
https://github.com/link-/ci-cd-intro
aws-elastic-beanstalk ci-cd ci-cd-pipeline github-actions terraform tutorial
Last synced: 3 days ago
JSON representation
Intro to CI/CD 💻 ☁️
- Host: GitHub
- URL: https://github.com/link-/ci-cd-intro
- Owner: Link-
- License: mit
- Created: 2021-07-08T10:11:00.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-08-18T15:12:14.000Z (6 months ago)
- Last Synced: 2025-02-10T10:04:17.480Z (10 days ago)
- Topics: aws-elastic-beanstalk, ci-cd, ci-cd-pipeline, github-actions, terraform, tutorial
- Language: Shell
- Homepage: https://glich.stream
- Size: 2.35 MB
- Stars: 84
- Watchers: 4
- Forks: 296
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: FUNDING.yml
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Intro to CI/CD 💻 ☁️
> TLDR; This repository is a sample project demonstrating a basic continuous integration (CI) / continuous deployment (CD) setup. This project is in READ ONLY mode.
:warning: **Fork this repository in order to use it!** If you're following along the videos and trying to run the workflows here, they will not work.
### Course attachement
> This repository is best consumed while or after following the course attachment 👇
## Project structure
```sh
# You can generate this tree with:
# $ tree -a -I '.git|assets|.github|venv|node_modules|images|.DS_Store|*.tfvars|.terraform'
.
├── .gitignore
├── CODEOWNERS
├── LICENSE
├── README.md
├── infra
│ ├── README.md
│ └── instances
│ ├── production
│ │ ├── .terraform.lock.hcl
│ │ ├── main.tf
│ │ └── terraform.auto.tfvars.example
│ └── staging
│ ├── .terraform.lock.hcl
│ ├── create_staging_resource.sh
│ ├── extra_staging.tf.example
│ ├── main.tf
│ └── terraform.tfvars.auto.example
└── web
├── README.md
├── app.js
├── bin
│ └── www
├── package-lock.json
├── package.json
├── public
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
├── tests
│ ├── app.test.js
│ └── routes.test.js
└── views
├── error.jade
├── index.jade
└── layout.jade12 directories, 26 files
```- `infra/images`: contains [Packer](https://learn.hashicorp.com/packer) template to build our [AWS EC2 AMI](https://aws.amazon.com/ec2/)
- `infra/instances`: contains our [Terraform](https://learn.hashicorp.com/terraform) templates to setup our `staging` and `production` EC2 instances
- `web`: contains our simple [Express](https://expressjs.com/) web application## Setup
### Configure your GitHub repository to run the workflows
Click to expand
1. Navigate to the `Settings` in your repository then to `Environments`
1. Add a new environment and call it `staging` (or anything else you like)
1. Enable required reviewers and add your secrets
1. Enable branch protection on the `main` branch

### Test your setup
1. Create a new branch from the `main` branch and make some changes to the app
1. Push the new branch to GitHub
1. Watch the CI workflow being triggered
1. Troubleshoot issues as they rise## LICENSE
[Copyright (c) 2021 Bassem Dghaidi (@Link-)](LICENSE)