Skip to content

GitLab Next

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
GitLab
GitLab
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 36,903
    • Issues 36,903
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 1,539
    • Merge requests 1,539
  • Requirements
    • Requirements
    • List
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Operations
    • Operations
    • Metrics
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.org
  • GitLabGitLab
  • Issues
  • #207228

Closed
Open
Created Feb 19, 2020 by Jules Copeland@julescopeland

Proposal: Gitlab-ci "except: - changes: - limited to:"

Problem to solve

When making small changes that are mainly devops related, or small config changes, I don't need to run all of the jobs in the pipeline.

For example, if I'm just updating gitlab-ci.yml, I don't need to run all of the unit and acceptance tests in the pipeline.

Intended users

  • Rachel (Release Manager)
  • Delaney (Development Team Lead)
  • Sasha (Software Developer)
  • Devon (DevOps Engineer)

Further details

The main use case I envisage for this feature is being able to skip running huge test suites that aren't actually testing anything that you've changed.

For example if you're just updating a deployment script, or some production config, then running the test suite again is a waste of time. None of the code you changed is going to be tested, and it just slows everything down.

The existing method of using only: changes lets you run the tests if certain files have been updated. You could potentially try and whitelist all files that would be tested, but this is dangerous, as someone might create some files that your pattern misses.

Proposal

except:
  changes:
    limited_to:
      - gitlab-ci.yml
      - config/**/*
      - bin/codedeploy/**/*

If the entire changeset only includes files that match the patterns defined in the array, then the job is skipped.

Permissions and Security

Same as existing only/except rules

Documentation

Availability & Testing

What does success look like, and how can we measure that?

What is the type of buyer?

Links / references

Assignee
Assign to
Backlog
Milestone
Backlog
Assign milestone
Time tracking
None
Due date
None