0:00:33
can you believe it I can't another show
0:00:40
so excited yeah pumped to get uh pumped
0:00:46
to see all your changes all your hard
0:00:48
work that you've been doing all this
0:00:50
through and how you share
0:00:53
uh everything so that's really looking
0:01:00
fantastic all right guys
0:01:03
um yeah so let's do the acknowledgment
0:01:06
of the country and then I will um then
0:01:10
basically we will go back to a kind of a
0:01:13
background or what we plan to do on this
0:01:16
session so here goes
0:01:19
I begin today by acknowledging the
0:01:21
traditional custodians of the land on
0:01:23
which we gathered today and pay my
0:01:25
respects to the elders past present and
0:01:28
future or extend their respect to
0:01:30
Aboriginal and Torres Strait Islander
0:01:42
um so the background is that
0:01:45
Tori has been doing some amazing stuff
0:01:49
on uh our project which is really
0:01:57
um I think and what we're gonna get Tori
0:02:00
to do is kind of explain what he did in
0:02:04
this session how about that story
0:02:12
uh is my am I a little laggy
0:02:18
um I don't think you all know okay yeah
0:02:24
I'll be I'm just gonna switch networks
0:02:27
real quick okay okay cool perfect
0:02:47
okay guys so yeah just wait until Mr
0:02:51
Tori the legendary comes back and then
0:02:54
we can get started with some fun
0:02:57
knowing what he did
0:03:00
why did and how we did it which is which
0:03:04
is going to be amazing because his his
0:03:08
actually told me really briefly on what
0:03:11
he did as in why messages but
0:03:15
um my my schedule has been really as in
0:03:19
full on so I haven't really had a chance
0:03:25
messages properly at all but um this is
0:03:27
what I've been waiting for all day
0:03:31
today all right I think it's better now
0:03:36
all right cool uh I can hear a beautiful
0:03:39
say girl noise in the background really
0:03:55
hello should be fine that should be fine
0:03:58
yeah it's still coming but I think it's
0:04:04
huh okay yeah sorry about that
0:04:14
what what type of sound is it
0:04:17
um do you know how you play a movie and
0:04:22
you hear the girls
0:04:25
sound but people also talking but the
0:04:30
girl sound is in the background always
0:04:32
always coming up that kind of person
0:04:36
it's like your headphones aren't plugged
0:04:56
all right let me I'll come back in come
0:04:58
back and see sounds good
0:05:06
hold on really tight it will be a fun
0:05:09
ride I promise you
0:05:13
um it's just some of the stuff that he
0:05:16
has done is really amazing she'll be
0:05:19
really surprised and for some of you
0:05:22
might be a stupid steep learning curve
0:05:25
which is always fun isn't it
0:05:32
let's hold on really tight until it
0:05:35
comes back and sorts out his headphones
0:05:43
yeah my day has been pretty full-on but
0:05:47
really productive so that was always
0:05:53
to do I think is about to come back in
0:06:03
actually I'm gonna play a bit of a
0:06:10
okay how however if we change it this
0:06:16
how about this one
0:06:23
yeah that's not too bad
0:06:32
actually Howard this one
0:06:46
better that is fantastic now yeah okay
0:06:52
just like the headphone jack being weird
0:07:00
I'm gonna listen to this sound tonight
0:07:10
this this whatever you're playing in the
0:07:13
background it's making me super sleepy
0:07:15
okay I'm gonna change it and hang on a
0:07:19
minute cool that's cool
0:07:22
the audience might like a lullaby too
0:07:28
how about this one
0:07:33
sure yeah interesting yeah why not yeah
0:07:38
all right thanks Perfect all right where
0:07:42
do you want to start off then Zayn
0:07:45
um you're the leader you have done some
0:07:47
amazing books so you
0:07:50
take us through from point A to I don't
0:07:53
know if it's amazing but but
0:07:57
it sounded really fascinating and
0:08:00
amazing as in all okay I'm not gonna
0:08:02
spoil it for anyone so you take charge
0:08:09
okay I guess I guess
0:08:12
um one thing I can start off talking
0:08:18
I was like getting antsy about
0:08:26
and setting up like a CI CD pipeline so
0:08:29
I already knew how to do it with Travis
0:08:34
um if you've heard of Travis it's it's
0:08:36
like Circle CEI and that stuff
0:08:40
um I haven't no oh okay yeah it's just
0:08:42
for like Ci CD pipelines and like Travis
0:08:45
CI is really easy to set up and use with
0:08:50
um a story but I had never done it with
0:08:53
um GitHub actions before and I just
0:08:56
didn't want to introduce another
0:08:59
tool and another login
0:09:02
Etc that we'd all have to share or
0:09:05
so I thought GitHub actions would be
0:09:08
pretty straightforward and it and it it
0:09:18
not documenting every single step that I
0:09:21
um but I I kind of
0:09:24
copied over the the more important
0:09:27
aspects of setting this up and I just
0:09:31
kind of made it a repo which I am
0:09:34
perfectly happy to share
0:09:40
which I don't know if you want to follow
0:09:51
um but yeah I mean I had a lot of help
0:09:55
um with you know I put some of the
0:09:57
resources that I use from down here
0:10:00
um that helped me a lot so it was tough
0:10:03
thanks to all those
0:10:06
um helpful people who made it like super
0:10:10
super easy to get this set up
0:10:16
to set up so basically the idea of using
0:10:19
GitHub actions is to use GitHub actions
0:10:27
to our static our client
0:10:31
website to S3 like automatically when we
0:10:35
push up some new code now you can set
0:10:38
rules around that like when you want
0:10:41
which you can you can do in the GitHub
0:10:50
this is oh wow that's is that not
0:10:53
updated let me hold on let me refresh
0:10:56
the page here there we go so this GitHub
0:11:03
what you put on GitHub
0:11:08
um and use their actions workflow and
0:11:10
then you use a yaml file to basically
0:11:15
you know very much like cloud cloud
0:11:19
um not cloudfront cloud formation
0:11:21
templates right you're just using a yaml
0:11:24
file to say do all this do all that and
0:11:36
on push means whenever you push to a
0:11:40
branch of which you choose then it will
0:11:44
it'll run this GitHub action
0:11:47
and then basically down here there's
0:11:51
the meat of the logic to save what to do
0:11:56
uh these permissions up here those come
0:12:02
um from uh they tell
0:12:18
with token and blah blah blah all right
0:12:21
and required to check the code from the
0:12:26
oidc is a identity provider that you set
0:12:30
up in AWS and I can talk about that more
0:12:34
but um it was it was actually it sounds
0:12:37
difficult but it was actually really
0:12:41
and um and then the rest of this
0:12:43
template it just kind of basically your
0:12:47
running node here that's just what in
0:12:50
Ubuntu like an Ubuntu Server so when you
0:12:53
run a GitHub action if you've never used
0:12:55
them before it just spins up like you
0:12:57
know a little just think of it like a
0:13:00
little Lambda or a little ec2
0:13:05
container that just
0:13:07
runs this job and then kills itself
0:13:10
afterwards right it just shuts down
0:13:13
right right yeah yeah that makes sense
0:13:19
the only other other than this kind of
0:13:22
like boilerplate stuff
0:13:24
which just kind of
0:13:26
tells like this stuff is all boilerplate
0:13:28
honestly and then here is like there's
0:13:31
this uses so this is a
0:13:35
I believe this is is a GitHub action
0:13:39
that it was built by AWS
0:13:43
so I'm using this so This uses refers to
0:13:47
use a GitHub action like up here uses
0:13:50
action I think this is from GitHub it's
0:13:55
um I think this is also from GitHub so
0:13:57
those are kind of like boilerplate
0:13:58
things this one is like we wanna
0:14:02
uh configure AWS credentials
0:14:06
and also I believe it gives us access to
0:14:09
the AWS CLI so you would you would uh be
0:14:14
familiar with this code running right
0:14:16
there in your your terminal right
0:14:21
so basically it's just running that same
0:14:24
um command in the terminal to copy all
0:14:27
to s to the S3 bucket
0:14:32
Communicator isn't it I don't
0:14:35
isn't it yeah it's running a sink yeah
0:14:40
um I don't think I need this actually
0:14:42
this can probably remove because we
0:14:44
don't have any dependencies but if you
0:14:46
did you could you could you could do a
0:14:48
whole build process here where say you
0:14:52
you know like uh a node application or a
0:14:57
react application you need to run like
0:15:00
or you need to install dependencies you
0:15:05
um before you copy right so you could
0:15:09
um production folder and then copy those
0:15:17
and then this last line down here this
0:15:19
invalidates the cache on cloudfront I
0:15:23
think the way we have it set up right
0:15:25
now there is no cache but if there was a
0:15:27
cache it's good to invalidate it first
0:15:34
the new files you've uploaded to S3 will
0:15:37
actually show up because
0:15:40
you're you're tearing down the old cash
0:15:45
if there if there is one and normally
0:15:47
they're normally if you're using Cloud
0:15:49
front you would cache some
0:15:52
you know some static Pages or whatever
0:15:56
yes yeah it's faster faster that way for
0:16:00
this the CDN and everything and for your
0:16:03
your clients and blah blah
0:16:06
so does that kind of make sense I mean
0:16:13
it looks like a lot but that's it's just
0:16:16
a lot of boilerplate stuff
0:16:20
it all it all does make sense and just
0:16:24
to like you know you're doing a pretty
0:16:26
good and simple job on explaining the
0:16:30
complete complete cases
0:16:33
I didn't write this code I'm just like
0:16:36
this is what I need okay okay I need
0:16:39
this thank you articles thank you for
0:16:42
explaining to this to me how it works
0:16:44
and modify it the way I need it yeah
0:16:49
yeah so yeah the other things I just
0:16:51
didn't touch is like there's a there's
0:16:54
actually a couple different ways to set
0:16:56
up the authentication with a AWS so I
0:17:00
chose to use what they Rec what AWS
0:17:02
recommended which is using that
0:17:05
um identity provider authentication
0:17:07
method the other way you could do it is
0:17:09
you could create a user or you could use
0:17:11
your own user keys and then basically
0:17:14
inject the secret and uh
0:17:17
the access key and the token from AWS
0:17:22
but I use the recommended workflow which
0:17:28
um the role a role based
0:17:34
and that's cool because
0:17:41
Limited in its use right so with the
0:17:49
um like I think I think
0:17:51
the role role gives you a new token
0:17:54
every time I believe
0:17:57
or something like that so it's a bit
0:17:59
more secure than just having access keys
0:18:03
right I say so this is just the Amazon
0:18:09
um for your role that you would put in
0:18:12
and then it's good to keep that a secret
0:18:13
even though on aws's side you can
0:18:17
specifically attach a policy to that
0:18:20
role to say I only want the token to
0:18:23
come from this specific Repository
0:18:27
but I mean I think it's just better to
0:18:30
hide it and you know and
0:18:34
your privileges are least Privileges and
0:18:43
and that's the best practice as well
0:18:49
um so the other things are
0:18:55
so you create you create a role in S3
0:19:02
let me see this article
0:19:06
actually was extremely helpful
0:19:28
so here he kind of takes you through the
0:19:31
steps and I'm just doing it here so I
0:19:33
don't have to like accidentally reveal
0:19:35
something I don't want to on AWS of
0:19:40
but yeah basically what you would do is
0:19:44
um you you create that
0:19:46
um that identity that open ID connect
0:19:49
identity with GitHub it's not a option
0:19:54
you have already I think you have like
0:19:56
AWS Google and some other identity
0:20:00
providers but you just basically are
0:20:03
GitHub as an identity provider
0:20:11
on my mouse is stuck that's funny
0:20:14
so I can't I don't know what's an open
0:20:21
what would that be
0:20:34
always open ID connect okay yeah so it's
0:20:39
oauth providers and
0:20:45
what is what does AWS have out of the
0:21:02
aws's authentication system
0:21:06
well they're you they're using oi DC for
0:21:13
but it's I think it's just a standard
0:21:17
I don't think it's not part of AWS it's
0:21:21
okay it's this open connect standard
0:21:26
so here you can see you can add um
0:21:30
open ID connect provider so you have to
0:21:32
be a provider in order to use this
0:21:35
method so GitHub like you ever seen
0:21:39
on a non-non GitHub site
0:21:42
um yeah that's basically the idea here I
0:21:46
believe although I am not a
0:21:49
I am not an expert of Education okay
0:21:57
they say they make sense because I did
0:22:04
the similar thing for some other project
0:22:07
and it was basically doing a login with
0:22:11
a third-party login so for example if
0:22:14
you have an app and you want to choose
0:22:16
your Google credentials to log in you
0:22:20
can you can do that
0:22:22
yeah yeah exactly so that's pretty much
0:22:26
the idea I I think there's a big list of
0:22:30
oid open ID connect providers
0:22:35
you know obviously like Google is one
0:22:39
um so we're using that it says establish
0:22:42
trust between your awsu account and
0:22:44
again identity providers such as Google
0:22:46
or Salesforce right so although it's not
0:22:50
available out of the box you just set it
0:22:59
these steps so you start by creating a
0:23:04
um hold on skip the step here maybe I
0:23:10
oh I guess he just doesn't have a
0:23:11
screenshot of it alone
0:23:20
well here you go too here's here's how
0:23:22
that here's how that
0:23:24
um that roll Works which is great
0:23:26
because you get short short-lived
0:23:29
so that's the advantage of using a roll
0:23:31
versus like you know your access key and
0:23:37
um right right right yeah that makes a
0:23:40
lot of sense actually
0:23:41
so I guess he doesn't have a screenshot
0:23:43
but basically you go through this
0:23:45
workflow you go to aim you go to
0:23:48
Identity providers and then you click
0:23:50
open ID connect and then you click I
0:23:53
think there's one for add a new identity
0:23:57
provider yeah add new provider select
0:24:00
open ID connect you basically provide
0:24:03
the GitHub token actions URL
0:24:08
and then the audience is simple
0:24:15
Amazon for Amazon for AWS
0:24:18
yeah simple tokens or something like
0:24:21
that and so then yeah
0:24:24
then you then you just hit get the
0:24:27
thumbprint and then you're then you're
0:24:29
you're good to go and then you create
0:24:32
the role so now you go over to aim you
0:24:34
create a new role and then basically
0:24:37
you're just adding
0:24:41
uh the identity provider like so all
0:24:47
um you you should have this available
0:24:49
now in the drop down you would see
0:24:51
GitHub as a identity provider in the
0:24:53
drop down if you if you correctly oh hey
0:25:01
um and then after that basically you're
0:25:03
just attaching a policy
0:25:06
like this one which is the same one I
0:25:15
the one thing you just need to change is
0:25:18
basically your organization so your your
0:25:22
name like Zane at GitHub blah blah right
0:25:25
yeah mine is Tori Littlefield so this
0:25:30
yours is Zane 88 or something
0:25:36
yeah rain 88 for GitHub your GitHub
0:25:40
username and then the Repository
0:25:44
so this this this specifically only
0:25:52
this specifically only allows the um the
0:25:57
the tokens and the and the permit and
0:26:00
the role to be uh used by that specific
0:26:04
repository so you really have like
0:26:09
um you know a good tight security here
0:26:15
that's what that um so only share the
0:26:18
credentials basic it'll only provide a
0:26:21
you know through this role and then from
0:26:29
uh the yaml in GitHub
0:26:33
um actions that I already showed so
0:26:35
that's him just going through all that
0:26:41
so that's that's basically just how you
0:26:43
set up GitHub actions with AWS and
0:26:47
um past credentials
0:26:49
so then after that
0:26:52
um if you want to do
0:26:54
uh you know this this CD with um S3
0:27:00
then of course you add that stuff I went
0:27:07
um for the GitHub actions
0:27:14
uh uh oh so the policy sorry I forgot
0:27:17
the policy I attached to
0:27:24
um this is the policy so I don't know
0:27:26
probably there's things in here it
0:27:29
honestly but like you can see one of
0:27:31
them is cloudfront invalidation because
0:27:34
that's we're going to invalidate
0:27:40
and some of this other stuff probably we
0:27:43
don't need but we definitely need to put
0:27:45
objects in our S3 bucket right because
0:27:47
we're we're syncing it with the AWS CLI
0:27:52
through that GitHub action
0:27:55
um some of this other stuff maybe not
0:28:00
and then the resource is
0:28:05
your bucket name so ours is
0:28:08
crumbler front end
0:28:11
and then you need this you need I was
0:28:14
like stuck on this for like
0:28:16
a good like 20 minutes of why
0:28:20
and then so you need both of these like
0:28:22
this this little this little
0:28:27
oh okay so these are actually exactly
0:28:31
the same up until this point so
0:28:35
honestly the resources I don't know what
0:28:39
I don't know enough about
0:28:41
um these policies how they're written
0:28:45
but that is the difference
0:28:47
and then the other thing you need is
0:28:50
this is this is um for cloudfront so
0:28:56
um be able to invalidate the cash on the
0:29:02
distribution with that specific role you
0:29:08
yeah or your own whatever
0:29:12
um then the last thing is to just attach
0:29:15
the policy to the S3 bucket so I updated
0:29:18
the S3 bucket basically the only thing I
0:29:28
so this this we already had I attached
0:29:32
and then this allows us
0:29:35
uh to the principal is the role that we
0:29:42
uh for uh that GitHub action
0:29:47
so from from the previous steps the role
0:29:50
like we're just putting in our Arn
0:29:52
yeah in here yeah and then the action is
0:29:55
a list bucket I guess we needed that and
0:29:58
then the resource is the S3 bucket
0:30:13
and it's it the only problem is it
0:30:16
probably needs some tweaking because
0:30:17
it's pretty slow so like the because
0:30:20
because they're like jQuery because
0:30:23
there's all these like
0:30:26
image files and svgs and stuff all this
0:30:29
stuff it has to go through when you when
0:30:32
you run it and like this sync run it
0:30:35
takes like two minutes so that means
0:30:40
it just puts everything on every uploads
0:30:43
but it doesn't update the only thing
0:30:46
that needs updating is it yeah but
0:30:49
that's right sync does that but it's it
0:30:52
still goes and checks all those files
0:31:02
so while I'm basing okay you have this
0:31:07
and other thing to consider in the
0:31:11
so if you were to as in CEO working how
0:31:16
would you do that as in I'm really
0:31:20
um yeah and there are ways
0:31:26
been like here we're copying over the
0:31:32
right but we could we could make this
0:31:34
specific I think we could probably make
0:31:37
um like only JS files right
0:31:41
instead of all instead of everything we
0:31:44
could probably say or only still
0:31:46
front-end file and then it'll be like
0:31:54
and the other thing too is here it's
0:31:57
whenever you push a change to a specific
0:32:02
but you could also you can also use
0:32:05
another you can do push on and then your
0:32:08
branches and then you can write paths
0:32:11
and then paths allow you to add more
0:32:14
conditions like only Js so then this
0:32:17
action would only run if you've updated
0:32:19
like JS files or a specific file or some
0:32:24
other conditions so you can like really
0:32:27
you know do a lot with these
0:32:30
um GitHub action templates as well
0:32:36
this is it running
0:32:45
yeah my neighbors fading away oh my God
0:32:49
I'm a ghost now you should look like I
0:32:53
think you should do it okay
0:32:56
oh my neighbors killed the power again
0:33:01
they killed your power
0:33:03
they killed everybody's power what
0:33:07
yeah so they have everyone's power in
0:33:10
their hands no they no they tripped it
0:33:12
they tripped it and they blew the the
0:33:19
can you talk to a brick for a few
0:33:22
can you talk yeah that's fine that's
0:33:26
fine okay let's do that it will be an
0:33:29
interesting experience
0:33:44
I could I could actually push some
0:33:46
changes if you wanted yes so or I could
0:33:50
or I could just manually run this again
0:33:55
no maybe uh push some changes so if we
0:34:00
can see as in how what does it do as in
0:34:04
in a real real life example okay
0:34:11
our Scrambler because I can't set the
0:34:15
um secrets in the Scrambler enhancement
0:34:21
um GitHub so that's something you need
0:34:23
to do so right now I set it up so that
0:34:27
I can push changes from my forked
0:34:31
repository and later on we can just
0:34:34
remove that but I figured I'd leave it
0:34:36
for now since maybe you wanted to damage
0:34:38
me to demonstrate how it works
0:34:41
so if we go to still front end
0:34:50
is there something more dramatic you
0:34:56
feel free to do anything either way it
0:35:00
will be good to see
0:35:02
and okay well we could we could make
0:35:05
something we can remove later
0:35:10
um so objective is saying can you remove
0:35:20
but it's dark you can't see anything
0:35:22
because they they killed the lights
0:35:28
I'm just gonna maybe stop my camera
0:35:32
it's it's super dark
0:35:40
there yeah I like that
0:35:42
I like your profile picture
0:35:48
um I'm hoping they can
0:35:53
the lights in a second here
0:36:00
where's where's like the the board
0:36:06
name your new board
0:36:08
so we can write name your new board
0:36:15
so we can edit that
0:36:22
what do I have here oh I don't I don't
0:36:29
what did I edit here what's this
0:36:33
oh just a space whatever
0:36:40
go away get ready you know
0:36:43
okay and then in here
0:37:02
and we can push this up
0:37:10
all right that's that's pushed
0:37:13
we'll go back to the
0:37:16
uh GitHub actions here
0:37:21
wait a little way whoa why did git fail
0:37:23
to execute what's wrong with you
0:37:28
let's have a look why
0:37:31
um where do we go to have a look why
0:37:39
well that's one way
0:37:44
huh what is going on it's still doing
0:37:47
something on the right
0:37:50
under Source control
0:37:53
something that's weird
0:38:01
I think I think it had a little
0:38:12
maybe push it oh here we go that's done
0:38:26
let's see if there's going to be one
0:38:29
that gets kicked off oh there you go so
0:38:35
and now it's doing its process
0:38:39
doing this build now
0:38:42
interesting so right I mean these parts
0:38:45
are fast this part is slow this is all
0:38:49
because this is this is checking every
0:38:51
file in in the client folder
0:39:00
I think so and then
0:39:03
um and then it uploads some which
0:39:08
is interesting but you can see which
0:39:11
ones got changed in S3 right
0:39:15
um because they'll have a new date
0:39:18
yeah so when that's when that's done the
0:39:20
next thing after it's done copying
0:39:24
if you look at that right here it's it's
0:39:37
um and then after that it's going to
0:39:41
the cloudfront cache for distribution
0:39:50
and then we should pretty much
0:39:52
immediately see those changes on on our
0:40:02
so now was basically going to happen
0:40:05
there'll be well every time we do a
0:40:08
change all we need to do is a commit
0:40:12
exactly so we don't have to copy over
0:40:15
anything isn't that nice
0:40:17
oh it's already there it's already there
0:40:20
online look at that
0:40:23
name your boy Trump
0:40:26
so yeah I can yeah I'll I'll remove it
0:40:32
and then I'll just put it back the way
0:40:39
and that's actually really fascinating
0:40:43
it today you do the changes it gets up
0:40:48
does all the magic and then she just
0:40:54
that's that's what you want right you
0:40:56
don't have to like exactly
0:40:58
yeah you know where you can write all
0:41:00
these commands no one on your team has
0:41:07
yeah and all you just have to do is
0:41:09
focus on coding The Vessel code push
0:41:13
your code push it code push it
0:41:18
you know probably because I never I
0:41:21
never use the GitHub action before and
0:41:23
I'm not super great with AWS so it
0:41:25
probably took me like
0:41:27
two two or three hours to set that up
0:41:29
but now that it's done I mean it's it's
0:41:37
a really good investment of time I think
0:41:42
so yeah you put in a little bit of time
0:41:44
up front and then you save a lot of time
0:41:46
and headache later
0:41:52
and I mean now that you've done it once
0:41:55
you can do it for any project in the
0:42:00
yeah and what I'm thinking at the moment
0:42:03
they might be a really good idea for you
0:42:10
in your space I got if I got in one
0:42:19
when every show going kind of a bit of
0:42:27
as well so so the only the only thing
0:42:32
so I opened a PR for this on
0:42:36
on the Scrambler enhancement
0:42:40
okay uh I'll have a look at that
0:42:47
um actually before I leave this let me
0:42:54
so this is my fort
0:42:57
repo I I did just to get this working
0:43:00
and I'm gonna delete it after this
0:43:26
yeah any anyone who anyone who lands on
0:43:30
home.html is the challenge
0:43:45
oh man I what is wrong with with
0:43:51
like the last week or two since I've
0:44:03
um I wonder if there's a browser update
0:44:06
and it's making things slow or
0:44:12
but uh are you using
0:44:15
Firefox aren't you
0:44:18
I use a brave browser
0:44:21
uh the brave brother just like here
0:44:24
Brave Brothers brave people
0:44:30
it's basically Google Chrome
0:44:34
better okay yeah now it's going fast so
0:44:37
this is where that file that GitHub
0:44:47
and then you can name it whatever you
0:44:49
want I just gave it a bad name as I
0:44:52
all right and then
0:44:55
um the one thing you need to set is you
0:44:58
and I think you only have access to this
0:45:00
you go to settings
0:45:02
and then you go to secrets and then you
0:45:06
and then you then you put in the
0:45:12
um repo secrets that are in the yaml
0:45:15
file like you can see them like the S3
0:45:19
the role the only one that's like more
0:45:22
that you really need to be more careful
0:45:23
of is just this one the other ones they
0:45:26
don't really matter
0:45:36
um yeah either way they need to be sent
0:45:37
those or you need to hard hard code it I
0:45:40
just wouldn't hard code this one
0:45:45
um yeah and the one the one thing I ran
0:45:50
into too that was I was like why isn't
0:45:53
this working why isn't this where it
0:45:54
took me 30 minutes to find out
0:45:59
let's see here so here's here's the
0:46:04
here's the pull request I opened
0:46:16
um yeah I was having a problem with the
0:46:19
branches and I'm like why am I having
0:46:26
and then I realized then I learned
0:46:29
then I learned that so so we have a
0:46:32
branch called connect websocket right
0:46:34
that we're currently working on
0:46:36
so say you you want to push changes to
0:46:40
connect websocket and then you want
0:46:44
uh it to make those changes to S3
0:46:49
right and so the one thing I learned is
0:46:53
that it's good to set up GitHub actions
0:46:57
from the very beginning because you need
0:46:59
to have GitHub actions available like
0:47:01
those files that folder and the yaml
0:47:05
file available on every branch
0:47:09
ah right so what I had to do is merge my
0:47:14
on my forked repo I had to merge the
0:47:18
the main branch with the with the
0:47:21
connect websocket branch
0:47:30
that part kind of stinks or you can
0:47:35
um maybe figure out another way around
0:47:37
it but yeah that's that's one part that
0:47:39
I learned that that sucked because
0:47:46
yeah either you like copy over the
0:47:49
template into every every branch which
0:47:51
is probably the easier way than trying
0:47:55
merge it and do all that stuff
0:48:01
that makes sense but I think that there
0:48:04
will be a wages in
0:48:08
kind of create one repo as a kind of
0:48:12
parent and the others as a child yeah
0:48:23
okay so yeah I'm not that good with Git
0:48:25
so I don't I don't know how to how to
0:48:30
well yeah I don't know
0:48:33
I would mess something up I'm sure
0:48:42
that is actually really great stuff to
0:48:45
be honest because now all we need to do
0:48:48
is as soon as we push it it's gonna
0:48:52
appear on the website baby
0:48:54
I know that's nice and and as a front
0:49:00
as a front-end person I was like I
0:49:04
really wanted to see my changes see if
0:49:06
they work on cloudfront too because you
0:49:08
never know sometimes when you
0:49:11
like things don't always work
0:49:13
this exactly the same way locally as
0:49:18
well we lost it again
0:49:26
all right that was brilliant though as
0:49:30
in I I uh I haven't done this before so
0:49:44
I'll be right back
0:49:50
yeah guys so this is pretty pretty
0:49:53
interesting I haven't really worked with
0:49:56
GitHub actions before especially this CI
0:50:01
and that's been a really good learnings
0:50:05
to be honest as in I got to know how to
0:50:08
create a boat or obviously
0:50:11
um once I started doing it then I'll
0:50:15
understand even better which which would
0:50:23
this has been really enjoyable I kind of
0:50:27
go a brief idea how different pieces of
0:50:32
kind of S3 and GitHub
0:50:36
and um kind of terminal there get put
0:50:40
together and then creating my magic
0:50:47
I gotta I gotta like
0:50:50
I gotta do something about this dog he
0:51:02
the thing is like sometimes unexpectedly
0:51:06
people walk in front of the house and
0:51:08
then he just goes berserk
0:51:14
I can't predict when somebody might pop
0:51:18
in front and it's just it's so just
0:51:21
disruptive I'm sorry
0:51:23
can't you like uh lock the main entrance
0:51:27
or is there no locks
0:51:41
all right he's gone to do something
0:51:45
um yeah hopefully we'll be back very
0:51:48
soon in the meanwhile we can just
0:51:51
um check out how beautifully the brick
0:51:57
okay yeah there's just like I think
0:52:02
people coming to check on the
0:52:04
electricity and he's going crazy about
0:52:09
okay yeah I was just gonna say that um
0:52:20
yeah I was just gonna say that country
0:52:22
and bring his girlfriend with him so
0:52:36
uh can you hear me
0:52:52
your camera is coming but it's really
0:52:54
using kind of slow
0:52:58
if you know what I mean
0:53:21
all right he's facing some technical
0:53:26
um he should be back normal shortly
0:53:38
yeah but yeah um it's been a really
0:53:41
interesting session as in
0:53:46
all right so he's gone is he coming back
0:53:54
yeah you're back yeah so sorry about
0:53:57
that I know my my internet just being
0:54:02
that's all right no problem at all yeah
0:54:06
I was just saying to them it was that
0:54:08
it's been a really interesting and and a
0:54:11
steep learning course session tonight
0:54:15
because I am really worth Trading
0:54:18
did some actions before
0:54:21
me either so it was it was like the
0:54:24
second or third time I've done anything
0:54:26
with it so it was it was fun
0:54:29
um and I never I never set up that
0:54:32
pipeline before but I always wanted to
0:54:34
so I thought it was a good opportunity
0:54:37
and I'm glad I'd be finished
0:54:42
you did it you did it you're the man
0:54:46
you know it was cool you know what was
0:54:48
cool Zane was when I was I was searching
0:54:55
a tutorial while I'm like making lunch
0:54:58
then I saw dinesha's video on this topic
0:55:03
yeah oh yeah I can't help actions test
0:55:11
interesting so his videos today's video
0:55:16
kind of inspired you
0:55:26
but to be fair to the other resources I
0:55:30
use I kind of like use theirs first and
0:55:35
a video at the same time and I found
0:55:38
tanishes which was really
0:55:43
but I'm more of a reader I think
0:55:45
sometimes ah all right probably more
0:55:50
probably like 60 percent 70 percent of
0:55:54
time I like to read
0:55:56
the instructions or the tutorial rather
0:55:59
than watch the video
0:56:03
yeah that makes sense that though and I
0:56:06
guess that the different people who who
0:56:09
prefer different things because
0:56:12
for me it's more videos as in I'm more
0:56:20
a free day especially coding as in I
0:56:25
learned really quickly when I watch
0:56:27
people doing stuff
0:56:30
yeah I I totally agree especially for
0:56:34
like the broader Concepts I like I like
0:56:37
watching like when I learned AWS for
0:56:49
who's gonna have something to say
0:56:53
oh I guess time could go ahead and watch
0:57:06
nowadays tour is on Full Speed and I'm
0:57:10
just kind of taking a back seat watching
0:57:19
nah dude it's not like that not at all
0:57:24
but uh yeah I don't know do you want to
0:57:27
call it tonight or do you want to go to
0:57:29
the front end code
0:57:36
to see you you haven't given me now did
0:57:39
you did you see did you see
0:57:56
um yeah share your screen and then
0:58:00
go to that and then do slash
0:58:05
oh that'll work fine
0:58:08
the websocket part not okay just the
0:58:13
I did not touch the websockets
0:58:21
all right and you can you can post you
0:58:25
can save the notes you can you can post
0:58:28
and Patch the notes too and delete the
0:58:30
notes I fixed all that code on the
0:58:35
all right I thought that was already
0:58:39
it seemed like it wasn't or it was
0:58:42
commented out or something
0:58:44
oh right right because we did do it in a
0:58:48
way that we implemented the methods one
0:58:51
by one and then commented out testing
0:58:53
and comment it out but now I think what
0:58:57
you must have done is uncommented them
0:59:03
um I just like I I just took the the
0:59:08
like the post and get and the re the the
0:59:13
fetch functions that you already created
0:59:16
wrote some of my own code to just like
0:59:19
use them when the page loads basically
0:59:21
and then I think there was a problem
0:59:29
somewhere I don't remember what it was
0:59:32
but it was minor and then delete wasn't
0:59:34
working either for some reason and I
0:59:37
fixed all those I don't know I don't
0:59:38
know why they were broken then
0:59:43
interesting how is that not working okay
0:59:47
there's a problem I didn't I didn't test
0:59:52
oh I know why well okay we'll try this
1:00:03
what did I do bored
1:00:11
query uh do a question mark right uh not
1:00:15
not slash just question mark
1:00:18
yeah and then do board name
1:00:25
I'll fix the other thing
1:00:28
a little bit create board thing
1:00:32
delete me and don't come back
1:00:36
you gotta when whenever you whenever you
1:00:40
create the cards they always show up in
1:00:42
that same same spot because they don't
1:00:45
have any persisted data to say hey I was
1:00:49
in the spot so that was one thing I
1:00:54
but now if you if you delete that one
1:00:57
it shouldn't come back you refresh the
1:01:04
I deleted all of them
1:01:09
wasn't not supposed to do this
1:01:13
hang on no you're fine so they're all
1:01:17
so how about if I do that again
1:01:31
yeah I think I think what happens is
1:01:34
when you hit go it's probably
1:01:36
redirecting to another and you just need
1:01:39
to update like where it redirects to
1:01:43
I think it's just redirecting you back
1:01:45
to the home page unfortunately
1:01:50
so yeah if you create a note and save it
1:01:52
or update a note and save it it they all
1:01:55
should work there is one thing I notice
1:02:01
there's like a debouncer on the save or
1:02:05
on the on the edit or something
1:02:10
sometimes when you save you think you
1:02:12
saved but because of the debouncer you
1:02:16
saved yet oh so that might be something
1:02:19
that we need to look at as well
1:02:22
yeah I was there's like an easy hacky
1:02:31
um I mean we could I didn't want to mess
1:02:33
with the script.js file
1:02:35
so I didn't I didn't mess with it at all
1:02:55
um we can basically work on this small
1:03:04
but yeah man well done it was amazing
1:03:07
work absolutely loved it and I'm
1:03:11
looking forward to your blog so that I
1:03:18
no no no no no as in when every year
1:03:22
what time because that can act as my
1:03:25
guide to as in Learners as well in that
1:03:30
just watched dinesha's video he already
1:03:34
oh okay cool I'll do that shout out to
1:03:38
finesse she already made a video on it I
1:03:43
I think I watched I watched all of it
1:03:46
and it pretty much tells you most of on
1:03:49
on YouTube yeah on YouTube if you type
1:03:53
dinesha's full name you will find him on
1:03:55
YouTube or if you type in
1:03:58
if you search for like
1:04:00
GitHub actions deploy S3 or something
1:04:03
like that you should find him somewhere
1:04:15
do you wanna okay you you did you
1:04:19
deserve to do the honors today yeah
1:04:22
because I did basically nothing I just
1:04:26
no you're good you did everything you do
1:04:28
you do a lot for this show you do
1:04:30
everything for this show
1:04:33
you do everything well if we do uh uh
1:04:41
out there not me it's me
1:04:44
right cool so do you want to do the
1:04:50
love of closing out the show or
1:04:55
as you recapping everything again oh man
1:05:00
so today today we uh we discuss how you
1:05:05
can set up give GitHub actions
1:05:09
um and authenticate that
1:05:13
um your your GitHub repository with AWS
1:05:16
and set up a CI CD Pipeline with GitHub
1:05:19
actions to an S3 bucket and cloudfront
1:05:25
fantastic nice and precise
1:05:28
right guys if you want to see how we
1:05:31
Carry On from it join us tomorrow at the
1:05:36
same place and a different task
1:05:40
there you go all right bye catch you
1:05:42
guys later thank you have a good night