summaryrefslogtreecommitdiff
path: root/doc/ci/interactive_web_terminal/index.md
blob: 2b4048599da17d8809cdf9c17c1c601b81f5819e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Getting started with interactive web terminals

> Introduced in GitLab 11.2.

Interactive web terminals give the user access to a terminal in GitLab for
running one-of commands for their CI pipeline.

NOTE: **Note:**
This is not available for the shared Runners on GitLab.com.
To make use of this feature, you need to provide your
[own Runner](https://docs.gitlab.com/runner/install/) and properly
[configure it](#configuration).

## Configuration

Two things need to be configured for the interactive web terminal to work:

- The Runner needs to have [`[session_server]` configured
  properly][session-server]
- Web terminals need to be
  [enabled](../../administration/integration/terminal.md#enabling-and-disabling-terminal-support)

## Debugging a running job

NOTE: **Note:** Not all executors are
[supported](https://docs.gitlab.com/runner/executors/#compatibility-chart).

Sometimes, when a job is running, things don't go as you would expect, and it
would be helpful if one can have a shell to aid debugging. When a job is
running, on the right panel you can see a button that will open the terminal
for the current job.

![Example of job running with terminal
available](img/interactive_web_terminal_running_job.png)

When clicked, you will be redirected to a new page where you can access the
terminal and type commands like a normal shell.

![terminal of the job](img/interactive_web_terminal_page.png)

If you have the terminal open and the job has finished with its tasks, the
terminal will block the job from finishing for the duration configured in
[`[session_server].terminal_max_retention_time`][session-server] until you
close the terminal window.

![finished job with terminal open](img/finished_job_with_terminal_open.png)

[session-server]: https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-session_server-section