| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Since it is not possible to dynamically detect if a job is automatically
cancellable or not, a this new attribute is necessary. Moreover, it let
the maintainer of the repo to adjust the behaviour of the auto cancellation
feature to match exactly what he needs.
|
| |\
| |
| |
| |
| |
| |
| | |
Introduce JobActivity limit for alive jobs
Closes gitlab-ee#376
See merge request gitlab/gitlabhq!3339
|
| | |
| |
| |
| |
| |
| |
| | |
This is a port from EE changes where
we introduce a new limit for Plan model.
https://dev.gitlab.org/gitlab/gitlab-ee/merge_requests/1182
|
| |/
|
|
|
|
|
|
| |
This makes BuildQueueService to force refresh runners
that are considered to have recent queue.
Such runners are the ones that connected within online
interval + time to expire runner cache.
|
| |\
| |
| |
| |
| |
| |
| | |
Enable DAG support by default
Closes #65457
See merge request gitlab-org/gitlab-ce!31814
|
| | |
| |
| |
| |
| |
| | |
This toggles the ci_dag_support flag to be on by default.
This relies on ci_dag_limit_needs to be present to reduce
amount of inter-dependencies between jobs
|
| |/ |
|
| |\
| |
| |
| |
| | |
Extend PipelineProcessWorker to accept a list of builds
See merge request gitlab-org/gitlab-ce!31425
|
| | |
| |
| |
| |
| |
| |
| | |
This changes used worker from `BuildProcessWorker`
to `PipelineProcessWorker` to make pipeline
processing much simpler. We process `pipeline_id`,
based on some triggers.
|
| |/
|
|
|
|
|
|
|
|
| |
Currently, some of the jobs with `needs:`
would be processed in stages, it means
that `when:` for such jobs would not be
respected.
This changes the behavior to have a separate
execution paths for jobs with `needs:`.
|
| |
|
|
|
|
| |
This implements the support for `needs:` keyword
as part of GitLab CI. That makes some of the jobs
to be run out of order.
|
| |
|
|
|
| |
Adds Job specific variables to facilitate specifying variables when
running manual jobs.
|
| |
|
|
|
| |
Convert several occurrences of `map` + `flatten` to
`flat_map` where applicable.
|
| |
|
|
|
| |
Often live traces are removed even though the archived trace
doesn't exist. This commit checkes the existence strictly.
|
| |
|
|
| |
Updates changed method names and fixes spec failures
|
| |
|
|
|
|
| |
Suggests to use a JSON structured log instead
Related to https://gitlab.com/gitlab-org/gitlab-ce/issues/54102
|
| | |
|
| |
|
|
| |
Use the shared method in Ci::Pipeline
|
| |
|
|
|
|
|
|
|
|
| |
Currently, we do not cap amount of tests returned to frontend,
thus in some extreme cases we can see a MBs of data stored in Redis.
This adds an upper limit of 100 tests per-suite.
We will continue showing the total counters correctly,
but we will limit amount of tests that will be presented.
|
| |
|
|
|
|
| |
This commit reverts the previously introduced concurrent pipeline
schedule creation which was a viable solution for mitigating
inconsistent pipeline schedule by Sidekiq Memory Killer.
|
| |
|
|
| |
Fixing the bug
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, pipeline schedule worker is unstable because it's
sometimes killed by excessive memory consumption.
In order to improve the performance, we add the following fixes:
1. next_run_at is always real_next_run, which means the value
always takes into account of worker's cron schedule
1. Remove exlusive lock. This is already covered by real_next_run
change.
1. Use RunPipelineScheduleWorker for avoiding memory killer.
Memory consumption is spread to the multiple sidekiq worker.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Currently, schedule head pipeline update method which executed after
pipeline creation does not take into account of merge reqeust
pipelines. We should use dedicated `all_merge_requests` method
in this case.
|
| |
|
|
|
|
|
|
|
|
| |
- Adds an endpoint on PipelinesController
- Adds a service that iterates over every build in a stage and
plays it.
- Includes 'play_manual' details on EntitySerializer
- Builds a new Stage state: PlayManual. An stage can take this status if
it has manual builds or an skipped, scheduled or manual status
- Includes FE modifications and specs
|
| |
|
|
|
|
|
| |
Due to the nature of pipelines for merge requests, deployments.ref can
be a merge request ref instead of a branch name.
We support the environment auto-stop hook for this case
|
| |
|
|
|
|
|
| |
If no pipeline is created we currently have IID gap.
This is due to fact that we generate IID not on save,
but rather ahead of time. This results, us,
losing IIDs.
|
| |\
| |
| |
| |
| |
| |
| | |
Properly expire all pipeline caches when pipeline is deleted
Closes #60469
See merge request gitlab-org/gitlab-ce!27334
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When deleting a pipeline, only some of the cache structures were being
expired, but not the full pipeline list. We have to synchronously
schedule a pipeline cache expiration because the pipeline will be
deleted if the Sidekiq expiration job picks it up. To do this, properly
extract all the logic buried in the Sidekiq worker into a service, and
then call the service.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/60469
|
| |/
|
|
| |
https://gitlab.com/gitlab-org/gitlab-ce/issues/60480
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the raw push option Array was sent to Pipeline::Chain::Skip.
This commit updates this class (and the chain of classes that pass the
push option parameters from the API internal `post_receive` endpoint to
that class) to treat push options as a Hash of options parsed by
GitLab::PushOptions.
The GitLab::PushOptions class takes options like this:
-o ci.skip -o merge_request.create -o merge_request.target=branch
and turns them into a Hash like this:
{
ci: {
skip: true
},
merge_request: {
create: true,
target: 'branch'
}
}
This now how Pipeline::Chain::Skip is determining if the `ci.skip` push
option was used.
|
| |
|
|
|
|
|
|
|
| |
`project.pipeline_status.has_status?` is cached, which can lead to Error
500s in the UI if the this condition is used to check whether a pipeline
exists for a commit. We now expire the cache to ensure that the
information is consistent.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/59453
|
| |
|
|
|
|
|
|
|
| |
Introduces the concept of Prerequisites for a CI build.
If a build has unmet prerequisites it will go through the
:preparing state before being made available to a runner.
There are no actual prerequisites yet, so current
behaviour is unchanged.
|
| |
|
|
| |
source_sha and target_sha are used for merge request pipelines
|
| |
|
|
|
| |
Fix misspellings in app/spec comments
See merge request gitlab-org/gitlab-ce!25517
|
| |
|
|
|
| |
This reverts commit 9202bbd129537a698b986e6295d0c783b5a84815, reversing
changes made to 4b282e9ce1ae246c4538b3ede18d1380ea778029.
|
| |
|
|
| |
Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com>
|
| |
|
|
| |
ChatOps used to be in the Ultimate tier.
|
| |
|
|
| |
Signed-off-by: Rémy Coutable <remy@rymai.me>
|
| |
|
|
| |
Signed-off-by: Rémy Coutable <remy@rymai.me>
|
| |
|
|
| |
Signed-off-by: Rémy Coutable <remy@rymai.me>
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
This commit segregates interface that is require to make CI/CD entity
processable, like `Ci::Build`. With this change it is not clear and
explicit what methods need to be implement to pass an object to pipeline
processing service.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rename
Introduce Destroy expired job artifacts service
Revert a bit
Add changelog
Use expired
Improve
Fix spec
Fix spec
Use bang for destroy
Introduce iteration limit
Update comment
Simplify more
Refacor
Remove unnecessary thing
Fix comments
Fix coding offence
Make loop helper exception free
|
| |
|
|
|
|
|
|
|
|
|
| |
AuditEventService isn't equipped to handle logging of the destruction of
entities such as CI pipelines. It's a project-level event that operates
on a pipeline. The current log doesn't even indicate that the pipeline
is being destroyed.
This is a CE backport of
https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9105. We're
removing the auditing call because it breaks the EE implementation.
|
| |
|
|
|
|
|
|
|
|
|
| |
These are data columns that store runtime configuration
of build needed to execute it on runner and within pipeline.
The definition of this data is that once used, and when no longer
needed (due to retry capability) they can be freely removed.
They use `jsonb` on PostgreSQL, and `text` on MySQL (due to lacking
support for json datatype on old enough version).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gitlab-org/gitlab-shell!166 added support for collecting push options
from the environment, and passing them along to the
/internal/post_receive API endpoint.
This change handles the new push_options JSON element in the payload,
and passes them on through to the GitPushService and GitTagPushService
services.
Futhermore, it adds support for the first push option, ci.skip. With
this change, one can use 'git push -o ci.skip' to skip CI pipe
execution. Note that the pipeline is still created, but in the "skipped"
state, just like with the 'ci skip' commit message text.
Implements #18667
|