►
From YouTube: CI Components - development workflow
Description
Fabio Pitino (Staff Backend Engineer) demonstrates how create a components repository, test it in CI and release a version.
Read more at https://gitlab.com/groups/gitlab-org/-/epics/7462
A
Hi
folks,
this
is
a
demo
on
how
to
develop
new
CI
components
and
share
with
the
rest
of
the
community.
So
here
I
have
like
a
project
that
I
just
created
and
where
I
added
a
readme
file,
we're
gonna
see
later,
like
the
the
purpose
of
the
readme
file
and
also
I've
created
a
template
yamo
file.
This
is
the
configuration
that
we
are
going
to
have
all
our
users
to
include
in
their
CI
GitHub
CI
and
configuration.
So
this
is
a
very
simple
example.
A
A
The
ammo
file
that
other
users
can
use
I
want
to
first
of
all,
make
sure
that
any
changes
to
this
file
and
anything
else
in
the
repository
they
are
going
through
checks
in
CI,
so
I
create
a
gitlab,
CI
yaml
file.
I'm
gonna
go
through
this
file
to
see
like
what
exactly
it
does.
So.
First
of
all,
we're
going
to
use
a
new
syntax
for
include
component,
and
this
syntax
actually
is
going
to
include
always
the
component
from
the
same
project
and
from
the
given
cic.
A
A
We
have
added
here
A
bunch
of
jobs
that
run
some
of
these
tests,
but
the
first
test
we
actually
are
going
to
do
automatically
is
that
by
including
this
component,
we
make
sure
that
the
syntax
that
is
being
added
by
the
component
is
going
to
be
valid,
that
there
is
no
syntax
errors
and
that
all
the
requirements
for
the
component
are
satisfied,
and
then
we
have
also
more
kind
of
a
custom
checks.
A
So
we
look
for
the
pipeline
jobs
using
core
and
then
we're
going
to
filter
these
jobs
by
name
and
select
those
that
have
component
job
as
a
prefix,
and
we
expect
those
to
be
two
otherwise
we're
gonna
fail
and
then
another
check
we
have
here
is
that
we
use
the
project
API
and
we
checked
that
the
description
is
not
no
so
because
we
expect
the
project
description
to
be
present
when
we
end
up
publishing
this
components
repository
to
the
catalog,
and
it's
going
to
be
better
for
displaying
this
this
as
a
resource
and
also
we
need
to
ensure
that
there
is
like
a
Vietnamese
file
added
and
on
the
rooted
directory,
and
so
this
are
going
to
be
running
anytime.
A
We
make
changes
to
to
on
any
branch
and
finally,
we
have
automatically
released
creation.
If
we
tag,
we
create
a
new
tag,
and
this
tag
has
a
very
kind
of
matches,
a
very
specific,
regular
expression,
which
is
starting
with
v
plus
d,
a
number
so
V1
V2.
And
if
these,
if
this
commit
tag
is
created,
then
we
are
going
to
create
a
automatically
a
release
and
a
new
release.
When
it's
created,
we
are
going
it's
going
to
be
an
official
version
that
is
going
to
be
considered
for
this
component
repository.
A
So
let's
have
a
look
at
what
happened
so
now,
I'm
going
to
make
a
change
to
this
file,
actually
I'm
going
to
make
a
change
to
the
actual
template,
I'm
going
to
add
a
new
file,
a
new
job
and
add
a
new
DOT,
three
I'm
going
to
commit
this
and
add
to
drop
three
push.
You're
gonna
create
a
new
Branch,
so
three
and
we
create
a
new
merge
request
for
this.
A
Patch
request,
so
what
do
we
expect
now?
We
have
a
pipeline
running
and
let's
check
this
pipeline.
So
here
are
all
the
checks
that
we
were
expecting,
plus
the
three
jobs
that
are
actually
being
included
from
the
component
and
what
we
expect
is
actually
this
test
is
failing
because
ensure
jobs
expects
two
jobs
to
be
added,
but
now
we
have
the
the
third
job
so
we're
going
to
fix
this.
A
A
Yeah
we'll
see
if
it's
gonna
pass
now
so
and
given
that
we
have
a
green
pipeline
I'm
going
to
merge
this.
A
Master
on
main
branch,
as
we
can
see,
this
is
now
running
a
main.
What
I
want
to
do
is
now
I
want
to
create
a
tag,
so
I
can
make
sure
that
it
seems
if
this
passes
give
this
passes.
I
want
to
create
a
new
tag.
So
I'm
happy
with
this
new
version
of
the
component
I'm
going
to
create
a
new
tag,
and
so
from
Maine
I'm
going
to
have
already
a
few
releases
created
so
I'm
going
to
take
the
1.2
and.
A
We
can
see
now
that,
as
soon
as
this
tag
is
created,
we
check
the
pipelines,
we
see
a
new
pipeline
being
created,
and
this
time
it
runs
for
the
tag.
If
we
check
this
pipeline
now,
we
have
also
released
a
job,
create
a
release,
job
which
is
going
to
automatically
create
a
release.
If
all
the
tests
pass
successfully.
A
You
can
see
version
1.2
has
been
created
automatically,
so
this
is
going
to
be
our
official
version
and
eventually,
when
we
have
the
functionality
to
publish
the
entire
components
project
to
the
catalog
and
we're
gonna
see,
this
official
release
has
been
displayed
there
as
as
versions
for
the
components.