Skip to main content

CI

Continuous Integration (CI) is a software development practice where developers regularly merge their code changes into a central repository. After a merge, automated builds and tests are run to catch bugs early and to validate that the new changes integrate well with the existing codebase. This practice encourages frequent code updates, enhances code quality, and enables early detection of issues. It's an essential part of modern DevOps processes and serves as a foundation for Continuous Deployment and Continuous Delivery.

Read more about CI:

GitHub Actions

GitHub Actions is a separate but closely related service provided by GitHub to implement CI/CD workflows. You can define custom workflows for building, testing, and deploying your code directly within your GitHub repository. These workflows are written in YAML files and can be triggered by various GitHub events like pushes, pull requests, or scheduled events.

Workflows are defined using YAML files that you place in aa .github/workflows directory in your repository.

In essence, GitHub Actions help you automate testing, building, and deploying your code right from your GitHub repository, without the need for external tools. This enables you to catch issues faster and streamline your development process.

This project provides several GitHub Actions workflows to help you get started.

SSHing into a GitHub Actions runner

If you need to SSH into a GitHub Actions runner to debug your workflows, you can start an action manually using lhotari/action-upterm added to PHP, Node.js, and Shell workflows.

This will post the SSH details into the Actions logs looking like:

=== 7Z1MOWVQIAQFAG5OOORQ
Command: tmux new -s upterm -x 132 -y 43
Force Command: tmux attach -t upterm
Host: ssh://uptermd.upterm.dev:22
SSH Session: ssh 7z1mowvqiAqFag5oOORQ:ZTc4NGUxMWRiMjI5MDgudm0udXB0ZXJtLmludGVybmFsOjIyMjI=@uptermd.upterm.dev

The SSH session will be available for 5 minutes and will continue the workflow execution after the session is closed or if no session is started.