So who am I? I'm David, David Rubio currently living in Spain. I'm a platform team lead in DX. There are another two developer experience in this call, Sam, Samantha and Daniele. And so I work with them. And we work in the zone. I don't know if you heard about the zone streaming company for global streaming company, for sports. If you, if you don't know, just check it out pretty cool stuff. And some certifications that you have certify solutions architect. I'm also an Amazon authorized instructor recently certified and instructing for AWS I'm also a certified professional master. And if you want some context details, you can follow me there and LinkedIn My handle for GitHub is the same. It's a DavidRV87. And my blog, if you want to have a look is in both Spanish and English. So feel free to just read some of the stuff. Some of the stuff that comes to my mind, I'll just put it there.
So we are going to give some introductions to GitHub Actions. I'm not going to read the definition, you have the definition there, but it's basically GitHub Actions is another yet, is yet another CICD system that you can use. You can guess that the owner is GitHub by the name. So is it even driven? We're going to see what those events are. So whenever something happens in GitHub, you put a, you submit a pull request or you close a pull requests, or you push something, then something's going to happen, or hopefully something's going to happen depending on the conditions that you place in the workflow. So let's see the components. A little bit of GHA, so some, we're going to be using some keywords throughout the workshop, so I just want you to get familiar with some of those keywords. Let me get my band up, I think it works. Yeah, so we have an event which is going to trigger the workflow, right? So that workflow is going to be made of jobs, right? I'm going to stress out what the jobs is throughout the workflow, throughout the workshop. So each job is independent from each other, and the jobs have steps, and each step has an action. So the action is the smallest piece that you can have in GitHub Actions. And then you're going to use those actions to create those steps and then jobs, and then those jobs are going to make the whole workflow. And those jobs are running in Runners. So there are two different ways of, or two different types of Runners. GitHub Runners, which are hosted by GitHub, and you can use them, or you can have your own self-hosted Runners. Those are more advanced topics. We are not going to cover those ones. But the thing that I want you to remember from this slide is that the job runs in a Runner, and is isolated. You can see there are two Runners here, one here, one here, and those two Runners are isolated from each other. You can share some stuff, or some artifacts produced in this Runner, into with this other Runner, or with this other job, but you have to do something. We're going to see what that something is throughout the workshop.
So, what else? Is this working? No, it's not working. Yeah, now it's working. So, events. What are those events? It can be a push that you do to your branch, a pull request. Maybe you create a tag, maybe you make a comment in an issue, or in a pull request, and you can also do manual triggers. If you want to control where you are deploying, if you want to control or manually deploy to production, you can actually create workflows that are going to be manually triggered, excuse me. You can schedule them. Different types of events that can trigger those workflows that we're going to be building. So what are the building blocks? I said that the building blocks are the actions. And so those actions are like blocks, like Lego blocks. So you have actions for AWS, for Java, for Kubernetes, for Sonar. So you have different building blocks, then you assemble them together to build your own pipeline. So that'll be a job, that's another job, then that's another job, and then with all those jobs, you create your pipeline or the workflow. So where are these actions coming from? So you have the Actions Marketplace. I'm going to share the link with you for that. I'm going to share a number of links at the end. So you have all the links. You can build your own custom actions and this is an example of a workflow. So you give it a name, then you specify the condition where when that job is going to run, then you have jobs. So in this case, we have two jobs. We have a job, which is linking and testing our code. We have a job, which is building and backing and uploading our code. Then as you can see, you have the steps. So a number of steps make a job and a number of jobs make a workflow. So I just want you to get familiar with those terms, Workflows, Events, Jobs, Steps, Actions, so we are all in the same page.
Some basics in Terraform, I know Daniela and Sam, you are familiar with Terraform, but how many of you have created an infrastructure as code? Maybe Terraform, maybe CloudFormation or something else that you've used for infrastructure? We're gonna see some Terraform and how it works. So in Terraform, Terraform is a HashiCorp tool which allow you to build infrastructure as code. So you have a number of config files and with those config files, you create some resources. In our case, we're gonna be deploying the stuff in AWS. I'm sorry, I'm really an AWS guy and so we are building stuff over there. So how everything works in Terraform are the flow. You initialize Terraform, you download all the dependencies and all the providers and all those things that are needed to actually connect to AWS for example. Then you plan what you're doing. So this is basically saying, hey, I want to do this. I want to create my buckets, I want to create my lambdas. I want to create my APIs. So you're planning, then you are applying those changes. So you write your code, you plan what you're actually going to do and then you apply the changes. So we are going to see that in a job. But I just want to get familiar with init, plan, apply because we are going to see those terms in a job. So I just don't want you to get lost on what is this guy doing? And finally, what we have is an output. We are going to have some outputs which is going to be URLs. We are going to have a URL for the API, a URL for the website that we're building. And then we are going to actually have some resources deployed in AWS. So what is the result in AWS? Simple, right? This is not an AWS course. This is not a Terraform course. This is a GHA course. Not course, workshop. So what we are going to do, we are gonna deploy a backend over here, a front end over here, and how do they talk each other these days through APIs? So this is what we are building. So this is gonna be a Lambda function. No, excuse me. Not. This is a Lambda function. This is just compute in AWS for those of you, this is serverless compute in AWS. And S3 bucket is where we are going to place our website, our static files, and then we are gonna talk.
Comments