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,070
    • Issues 36,070
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 1,299
    • Merge Requests 1,299
  • 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
  • #26655

Closed
Open
Created Feb 08, 2019 by Daniel Gruesso@danielgruessoMaintainer

Auto DevOps does not run unless dockerfile or matching buildpack exists

Problem to solve

Currently we run auto devops automatically even for projects that:

  1. Don't have a dockerfile
  2. Don't have a matching buildpack

This leads to unnecessary cycles and user dissatisfaction as they often don't understand why their project is showing failures.

Target audience

  • Sasha, Software Developer, https://design.gitlab.com/research/personas#persona-sasha

  • Devon, DevOps Engineer, https://design.gitlab.com/research/personas#persona-devon

Further details

Proposal

When Auto DevOps is enabled, evaluate if a build mechanism exists before running. If no build mechanism, disable Auto DevOps. Mechanisms to consider should include:

  1. Presence of a Dockerfile
  2. Presence of matching file for buildpack bin/detect (ie Gemfile for Ruby, package.json for node.js, etc). We'll just need to hardcode all the files listed in bin/detect for all the supported buildpacks.
  3. Presence of a custom BUILDPACK_URL environment variable

This should only happen when Auto DevOps is "implicitly" enabled and not when explicitly enabled as someone that has explicitly enabled Auto DevOps will want to see a failing pipeline to understand why it's not working.

We should also ensure the logic to check if the files exist is based on the SHA for which we are currently creating a pipeline (and not just looking at master for example).

Lastly, if the check runs and no Dockerfile or matching buildpack are found AND Auto DevOps has been enabled implicitly for the project in question, we should inform user about this fact in the Auto DevOps settings section by displaying a warning alert that reads:

You must add a Dockerfile or supported buildpack in order for the Auto DevOps pipeline to run. More information

Screen_Shot_2019-07-08_at_3.28.03_PM

If the correct file is added, we should automatically run the pipeline.

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

We should track the instances where this evaluation returned true or false to start.

Links / references

Edited Dec 13, 2019 by Daniel Gruesso
Assignee
Assign to
12.7
Milestone
12.7 (Past due)
Assign milestone
Time tracking
None
Due date
None
Reference: gitlab-org/gitlab#26655