0:00:00.000,0:00:03.300 NARRATOR: Automation is key for streamlining your work processes 0:00:03.300,0:00:06.900 and GitHub Actions is the best way to supercharge your GitHub Workflow. 0:00:06.900,0:00:08.250 This enables you to create 0:00:08.250,0:00:13.200 custom software development life cycle workflows directly in your GitHub repository. 0:00:13.200,0:00:16.080 GitHub Actions is fully integrated into GitHub. 0:00:16.080,0:00:18.840 It's built-in from the merge box to the checks tab, 0:00:18.840,0:00:20.430 from the UI to the API. 0:00:20.430,0:00:22.605 It works the way that GitHub works. 0:00:22.605,0:00:26.280 Since GitHub Actions help you automate your software development workflows in 0:00:26.280,0:00:30.340 the same place you store code and collaborate on pull requests and issues, 0:00:30.340,0:00:31.860 you can discover, create, 0:00:31.860,0:00:35.205 and share actions to perform essentially any job that you'd like, 0:00:35.205,0:00:36.855 including CI and CD, 0:00:36.855,0:00:40.185 and then combine actions in a completely customized workflow. 0:00:40.185,0:00:42.360 To visualize how this can be useful, 0:00:42.360,0:00:44.925 let's take a quick look at the basic GitHub Flow, 0:00:44.925,0:00:49.020 a lightweight yet effective branch-based workflow commonly used on GitHub, 0:00:49.020,0:00:51.030 and then see how GitHub Actions fits in. 0:00:51.030,0:00:54.205 Now, when we want to make changes to our code in our GitHub Repository, 0:00:54.205,0:00:57.505 we branch off of main or the production branch, maker commits, 0:00:57.505,0:01:00.430 open up a pull request on GitHub to share our changes, 0:01:00.430,0:01:04.570 and then merge this branch into the main branch and then delete our feature branch. 0:01:04.570,0:01:06.040 Looking at the GitHub Flow, 0:01:06.040,0:01:08.890 where would this automation with GitHub Actions take place? 0:01:08.890,0:01:11.785 Well, the great thing about GitHub Actions is that you can apply 0:01:11.785,0:01:13.840 existing GitHub Actions or even create 0:01:13.840,0:01:17.245 your own GitHub Actions to essentially any stage in the GitHub Flow. 0:01:17.245,0:01:19.030 Do you want to include CICD? 0:01:19.030,0:01:20.635 Well, GitHub Actions can do that. 0:01:20.635,0:01:23.050 Do you want a specific automated tasks to run 0:01:23.050,0:01:25.450 when an issue is opened, labeled, or closed? 0:01:25.450,0:01:28.900 How about when a pull request is opened and you want automated reminders 0:01:28.900,0:01:32.545 created based on labels or reviewers from a code owners file? 0:01:32.545,0:01:34.450 Well, GitHub Actions enables you to create 0:01:34.450,0:01:37.315 these custom software development life cycle workflows 0:01:37.315,0:01:39.250 directly in your GitHub repository. 0:01:39.250,0:01:41.155 GitHub Actions are event-driven, 0:01:41.155,0:01:45.205 meaning that you can run a series of commands after a specified event has occurred. 0:01:45.205,0:01:48.865 For example, every time someone creates a pull request for a repository, 0:01:48.865,0:01:52.495 you can automatically run a command that executes a software testing script. 0:01:52.495,0:01:55.820 Instead of using CI or CD integrations, with GitHub Actions, 0:01:55.820,0:01:58.710 you can build end-to-end CI and CD capabilities, 0:01:58.710,0:02:00.360 and yes, you probably guessed it, 0:02:00.360,0:02:02.380 directly in your GitHub Repository. 0:02:02.380,0:02:05.420 This gives you the ultimate freedom to customize how your actions 0:02:05.420,0:02:09.110 work and automate tasks all along your software development life cycle. 0:02:09.110,0:02:11.930 Now that we can see where we can apply automation 0:02:11.930,0:02:14.870 using GitHub Actions within our software development workflow, 0:02:14.870,0:02:18.245 let's take a closer look into how GitHub Actions actually work. 0:02:18.245,0:02:22.565 GitHub Actions use YAML syntax to define the events, jobs, and steps. 0:02:22.565,0:02:24.170 These YAML files are stored in 0:02:24.170,0:02:28.185 your code repository in a directory called .github/workflows. 0:02:28.185,0:02:31.715 An event automatically triggers the workflow which contains a job. 0:02:31.715,0:02:35.255 The job then uses steps to control the order in which actions are run. 0:02:35.255,0:02:38.555 These actions are the commands that automate your software testing. 0:02:38.555,0:02:40.010 In this example workflow, 0:02:40.010,0:02:43.595 it automatically triggers a series of commands whenever code is pushed. 0:02:43.595,0:02:47.675 GitHub Actions checks out the pushed code, installs the software dependencies, 0:02:47.675,0:02:51.035 and runs bats-v to output the software version. 0:02:51.035,0:02:53.435 With GitHub Actions, you can also build, test, 0:02:53.435,0:02:56.360 and publish across multiple operating systems, 0:02:56.360,0:02:59.200 platforms, and languages all within the same workflow, 0:02:59.200,0:03:02.735 and then see the status checks displayed within your pull request. 0:03:02.735,0:03:03.770 With GitHub Actions, 0:03:03.770,0:03:06.620 you have the ability to create your own actions or leverage 0:03:06.620,0:03:10.670 these pre-built actions by the community found on the GitHub marketplace. 0:03:10.670,0:03:14.850 So if you've been itching to customize and automate your workflow from idea to production, 0:03:14.850,0:03:16.950 jump into GitHub Actions today and explore 0:03:16.950,0:03:20.830 the amazing community actions in the GitHub marketplace