►
Description
TL;DR: https://gitlab.com/gitlab-org/incubation-engineering/jamstack/meta/-/issues/39
Join an upcoming Incubation Engineering update: https://calendar.google.com/calendar/u/0?cid=Y180dG1kZmF2dGtjYXY4c2IxdmxxYzUyMDFrY0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t
A
Let
me
quickly
say
this:
is
the
incubation
jamstack
incubation
engineering
update
for
this
week?
I'm
glad
you
all
joined.
I
think
this
is
the
biggest
audience
for
this
update.
Yet
so
I'm
going
to
talk
about
two
things
that
I
did
this
week.
A
One
is
the
onboarding
complete
state
update,
which
is
necessary
for
the
onboarding
using
the
pipeline
wizard
for
gitlab
pages
onboarding
and
the
other
is
another
smaller
feature
for
gitlab
pages
that
I
had
been
working
on
previously
that
I
picked
up
again
this
week
because
I
had
a
new
idea,
but
one
after
the
other,
I'm
going
to
start
with
what
I
did
first
this
week,
which
is
the
onboarding
state.
A
So
here's
my
screen,
you
see
this
is
the
graphql
interface
for
gitlab
and
basically,
what
I
did
was
adding
a
new
mutation.
A
Which
basically
allows
me
to
set
pages,
marked
onboarding,
complete
input
for.
A
For
the
full
for
project
path-
and
this
is
a
project
that
I
have
access
to-
which
I
am
the
owner
of
root-
not
for
example,.
A
So
basically,
what
I'm
doing
here
is,
I
can
now,
in
from
the
front,
end
mark
tick
box.
Yes,
the
onboarding
is
complete,
and
this
is
working
fine,
now
and
and
now
the
back
end
has
this
information
that
the
onboarding
is
complete.
It's
really
really
simple,
but
it
needs
another
database
column
and
I
explained
it
last
week
why
I
need
this
because,
right
after
submitting.
A
The
after
submitting
the
new
gitlab
pages,
gitlab
ci
yaml
file,
and
that
should
deploy
github
pages
at
some
point.
We
we're
triggering
a
job,
but
it
will
take
until
this
job
is
successfully
finished.
First,
for
us
to
have
that
information
that
the
user
has
deployed
a
page
or
that
there
is
any
instance
of
any
interaction
with
gitlab
pages.
A
Pages
instance
was
successfully
deployed,
there
were
kind
of
in
a
limbo
where
the
user
interface
has
no
information,
whether
or
not
we
should
show
this
onboarding
screen
again.
So
this
should
solve
that
issue,
because
now
we
can
just
once
the
user
clicks
commit
for
the
first
time
we
can
just
com,
submit
this
notation
and
and
thus
prevent
this
onboarding
screen
from
being
shown
again.
Three
other.
B
Hey
yeah,
so
the
minute
I
commit
the
pipeline.
B
A
Be
committing
into
the
wrong
branch
you
could
be.
You
could
potentially
submit
an
invalid
file
that
doesn't
create
a
pipeline
just
yet,
because
I'm
giving
you
the
option
to
interactively
change
the
contents
of
the
gitlab
ci
yaml
file,
so
it
could
be
invalid
yeah,
but
it
will
still
accept
the
commit.
So
there's
all
those
kinds
of
different
reasons.
The
pipeline
just
doesn't
100
overlap
with
what
I'm
trying
to
do
here.
So
this
is
basically
just
an
information.
Have
I
shown
you
this
this
screen
before
and
have
you
walked
completely
through
it?
A
A
Where
you
can
say,
please
show
me
the
onboarding
wizard
again,
probably
with
a
better
text
on
the
button,
but
basically
this
so
I
can
show
you
an
in-between
screen
like
yes,
you
have
already
submitted
configured
your
gitlab
ci
yaml
file,
but
the
pipeline
is
not
deployed
yet
here's
a
list
of
things
you
can
check
or
a
list
of
things
you
can
do.
B
A
This
mutation,
basically,
I
have
not
prepared.
B
A
So
this
mutation
is
stored
in
the
table
project
pages
metadata,
where
I'm
adding
a
new
column,
onboarding
complete,
which
is
basically
a
problem.
Initially,
this
onboarding
complete
column
will
have
all
the
values
from
deployed,
so
we're
assuming
that
if
the
page
is
already
deployed
that
onboarding
is
complete
so
that
somebody
doesn't
need
the
onboarding
screen
anymore.
A
So
I'm
filling
these
initially
with
the
same
same
values
as
on-boarding,
complete
during
the
migration
and
eventually
deployed
and
onboarding
complete
for
a
project
that
has
been
in
existence
for
a
little
while
and
those
values
should
align.
A
Unless
the
pages
deployment
went
or
aura
awry
went
wrong
or
something's
up
with
a
pipeline,
in
which
case
those
two
values
can
differ,
but
there
should
be
some
kind
of
eventual
consistency.
A
Yeah
nice.
Thank
you
yeah.
All
right,
I
mean
yeah.
Here
we
have
a
case
where
onboarding
is
complete,
but
the
page
is
not
deployed
which
can
happen
if
somebody
walks
through
the
onboarding
but
then
removes
the
page's
deployment
afterwards,
so
yeah
those
don't
hundred
percent
line,
which
is
why
I
need
this
new
comment
right.
Then
there
was
a
different
thing
that
I
had
been
working
on
this
week,
which
is
basically
just
the
result
of
a
shower
thought.
A
couple
of
months
ago,
I
opened
this,
mr
ad
onboarding
complete.
A
No
sorry
this
is
the
one
I've
been
working
on,
enable
the
usage
of
any
artifact
folder
name.
This
is
an
mr
on
gitlab
pages,
like
the
go
process
that
delivers
gitlab
pages.
Why.
B
A
Important
because,
currently,
if
you
want
to
deploy
anything
with
pages,
your
public
files
that
you
want
to
have
pages
delivered
to
the
to
the
public
needs
to
be
in
a
folder
called
public,
which
is
the
behavior,
probably
probably
copied
from
github
pages,
and
it
makes
sense
if
you
have
a
simple
setup,
but
it's
an
additional
complication
for
any
other
static
site
generator,
because
most
of
the
static
site
generators
have
some
kind
of
output
folder,
but
each
of
them
calls
them
differently.
A
So
I
mean
hugo
gatsby
and
swelter
do
use
a
folder
called
public
where
they
dump
the
compiled
files.
React
on
the
other
hand,
as
the
biggest
framework
out
there
uses
a
folder
called,
build,
vue.js,
naxjs,
angular,
astro
and
bit
use
a
folder
called
dist
by
default.
A
A
You
know
it's
not
the
most
straightforward
thing,
because
not
only
do
you
need
to
change
the
name
of
the
output
folder,
many
of
those
frameworks
also
use
a
folder
called
public
for
something
else
like
for
static
assets
or
anything
else.
So
you
have
to
rename
that
one
too
so
and
looking
through
the
gitlab
pages
code,
there's
no
real
reason
why
we
would
have
this
requirement
why
this
folder
actually
needs
to
be
named
public
other
than
the
fact
that
his
that
it
has
always
been
that
way.
A
So
I'm
trying
to
just
get
rid
of
this
requirement
entirely,
I'm
playing
through
different
ways
of
doing
this.
So
my
initial,
mr,
was
like
changing
gitlab
pages
in
a
way
that
it
allows
basically
any
folder.
So
the
original
thing
was
I'm
just.
I
will
deliver
if
there's
only
one
folder
in
your
artifacts
just
deliver
that
as
the
root
assume.
That
is
the
root.
If
it's
called
public,
I
don't
care.
If
it's
called
this,
I
don't
care.
A
A
So
I
had
this
guest
public
directory
name
function,
which
would
always
return
the
single
folder
if
there
was
just
one
root
directory
and
other
than
that,
if
in
doubt
it
would
just
go
through
the
most
popular
names
ordered
by
most
popular
to
less
popular
frameworks.
So
if
it
found
a
folder
called
public
and
the
folder
called
build,
it
would
go
for
public
if
it
found
a
folder
called
this
and
the
folder
called
site.
A
It
would
go
for
this,
which
I
think
is
probably
rather
elegant,
because
it
doesn't
need
a
lot
of
overhead
on
the
part
of
the
user,
but
there's
a
little
bit
of
back
and
forth,
because
all
this
guessing
happens
when
the
user
makes
a
request
to
gitlab
pages,
and
that
is
a
bit.
That's
a
lot
of
overhead.
A
We
move
this
whole
guessing
to
the
job
that
deploys
the
gitlab
pages
in
rails
as
a
rails
background
job
and,
let's
open
that
zip
file,
rename
the
root
folder
to
public
and
then
leave
pages,
the
gitlab
pages
processed,
as
is
or
a
third
approach,
which
I
mentioned
here
as
a
comment,
because
it's
just
pseudo
code
at
the
moment
the
idea
was
to
just
allow
multiple
folders
and
then
use
don't
use
any
root
directory
at
all,
but
that
I
just
realized,
while
trying
that
out
that
the
artifacts.
A
A
So
this
would
still
need
some
some
extra
work
on
the
rail
side
in
order
to
to
make
this
work.
But
it
would
also
be
very
elegant
because
going
allowing
this
would
allow
the
user
to
skip
the
compilation.
B
My
life
is
full
of
questions
yeah,
so
regarding
option,
one
where
we
assume,
so,
if
only
one
folder
exists
in
the
artifact,
we
just
assume
that
is
the
root.
I
know
I
know
like
asking
the
user
to
explicitly
mention
the
public.
Folder
is
not
the
most
elegant,
but
assuming
something
is
public
could
have
a
lot
of
security
implications.
B
B
B
The
root
fold
I
mean
the
very
basic
thing
we
could
do
is
like
try
to
see
if
it
is
a
hidden
folder
or
not.
If
it
is
a
hidden
folder,
then
don't
make
this
assumption.
So
if
it
is
a
dot.
B
A
B
A
The
thing
is
that
pages
still
needs
to
be
configured
as
a
as
a
job,
so
somebody
has
to
have
gone
in
and
say
pages
artifacts
paths
and
just
define
this
one
folder
as
as
the
public
one,
and
only
if,
if
that
is
in
there,
you'll
be
surprised,
this
outdoor
site
folders
would
actually
be
additionally
exposed.
A
B
B
A
A
So
yeah
there
was
another
idea
which
is
adding
another.
A
Item
to
to
the
github.
B
B
Yeah,
maybe
if
you
can
make
it
more
explicit
in
the
yaml
definition,
so
if,
instead
of
artifact
paths,
we
said
pages
public
and
then
they
give
the
path,
then
at
least
they
know
that
they're
ex
then
the
user
is
explicitly
saying
that
this
folder
is
going
to
be
exposed
right
now,
I'm
just
like
this
contract.
You
know,
like
hey
gitlab,
why
did
you
expose
my
secrets?
It
should
be
very
clear,
a
user
because
you
defined
it
here,
not
because
I
made
an
assumption.
A
Yeah
I'll
definitely
count
that
in
and
yes,
I
haven't
made
any
decision
yet.
I've
just
tried
those
different
approaches
and
weighing
them
against
each
other.
But
yes,
the
ultimate
goal
is
with
as
little
overhead
for
the
user
as
possible
and
with
as
little
going
into
and
reading
documentation
stuff
as
possible
and
enable
those
additional
sources.
B
Them
yeah,
no,
I
mean
the
the
underlying
idea
makes
sense
right.
There
are
all
these
different
frameworks.
Every
framework
has,
let's
say,
a
different
folder
name.
Maybe
we
I
don't
know
this
is
probably
a
bad
idea,
but
we
just
try
to
pick
the
biggest
frameworks
and
support
their
particular
folder
names.
That's
an
easy
way
out.
I
like
the
idea,
it's
really
clean
right,
I
mean,
if
there's
only
one
folder,
then
that
obviously
has
got
to
be.
The
root
makes
sense,
but
there
are
like
a
different.
A
Another
property
like
that
behaves
exactly
like
artifacts
paths,
but
it's
just
named
differently
so
as
to
you
go
actively
in
and
then
we
can
have
both
behaviors
parallel.
Artifact
paths
will
only
yeah.
I
love
that.