Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mastering GitHub Actions: Automate and Supercharge Your Development Workflow

Mastering GitHub Actions: Automate and Supercharge Your Development Workflow

In the fast-paced world of software development, automation is the key to efficiency and productivity. GitHub Actions has emerged as a powerful tool for automating your development workflows, from continuous integration to continuous deployment and beyond.

We will explore the ins and outs of GitHub Actions, equipping you with the knowledge and skills to supercharge your development process. Whether you're a seasoned developer looking to streamline your CI/CD pipelines or a newcomer curious about the world of automation, this talk is tailored to your needs.

Kibet Theophilus

October 28, 2023
Tweet

More Decks by Kibet Theophilus

Other Decks in Programming

Transcript

  1. What is Continuous integration? - is a software development practice

    where developers frequently merge their code changes into a central repository, after which automated builds and tests run.
  2. What is Continuous Deployment? - is a strategy in software

    development where code changes to an application are released automatically into the production environment(or qa, uat e.t.c).
  3. Tools used for CI/CD 1. Github Actions 2. Jenkins 3.

    Circle CI 4. TeamCity 5. Gitlab 6. Bamboo
  4. Github Actions? - Enables developers to define, customize and execute

    workflows directly within their GitHub repositories.
  5. Github Actions? - Enables developers to define, customize and execute

    workflows directly within their GitHub repositories.
  6. Workflows - refers to a series of automated steps or

    tasks that are defined in a YAML configuration file and executed in response to events in a GitHub repository. - This YAML file is placed in the .github/workflows directory in your repository, and it specifies the workflow's structure, including the jobs, steps, and actions to be executed.
  7. Workflows - refers to a series of automated steps or

    tasks that are defined in a YAML configuration file and executed in response to events in a GitHub repository. - This YAML file is placed in the .github/workflows directory in your repository, and it specifies the workflow's structure, including the jobs, steps, and actions to be executed.
  8. Triggers - Workflows are triggered by specific events that occur

    in the GitHub repository. - These events can include code pushes, pull requests, issues, comments, and more.
  9. Jobs - A series of steps executed by the same

    runner. - A workflow can have one or more jobs.
  10. Jobs - A series of steps executed by the same

    runner. - A workflow can have one or more jobs.
  11. Runners - are the environments where your GitHub Actions workflows

    are executed. - GitHub-hosted runners -> ubuntu, windows, macOs - Self-hosted runners -> your infrastructure
  12. Steps - actions or tasks that are executed sequentially within

    the job e.g building code, running tests or deploying applications.
  13. Steps - actions or tasks that are executed sequentially within

    the job e.g building code, running tests or deploying applications.
  14. Actions - reusable, shareable units of code that can be

    used within the steps of a workflow. - Found on github marketplace or created by you.
  15. Parallelism - Jobs within a workflow are executed concurrently on

    separate runners (virtual or self-hosted machines), which can significantly speed up the workflow's execution.
  16. Secrets and Environment variables - Workflows can securely access sensitive

    information, like API keys and credentials, by using GitHub's secret management. - You can also define environment variables that are available to the workflow steps.
  17. Workflow Artifacts - Workflows can produce and store artifacts, which

    are files or data generated during the workflow's execution.
  18. Notifications - GitHub Actions can be configured to send notifications

    or alerts to various communication channels, such as Slack, Microsoft Teams, or email.