Search code examples
gitlabpipelinecicd

Running GitLab pipeline from a branch other than main


I've been stuck on trying to run a GitLab pipeline from a branch in my repo and its driving me crazy. I have a sample branch called test-branch, but every time I try to run the pipeline manually GitLab shows an error message saying

Pipeline cannot be run
Failed to build pipeline!

I am the owner of the group hence by inherited permissions, I should be able to run a pipeline on any branch by default. I am able to manually run this same pipeline from the main branch, but for any other branch, it simply won't budge. Here is the .gitlab-ci.yaml file I am using

stages:
 - build_artifacts
workflow:
  rules:
    - if: $CI_PIPELINE_SOURCE == "push"
      when: never
    - if: $CI_PIPELINE_SOURCE == "web"
Run-Pipeline:
  stage: build_artifacts
  script:
 - |
    echo "Somevalue" > file.json # Just an example script
  artifacts:
    paths:
      - file.json

Here are some steps I have takes to try and resolve this

  • Change the actual pipeline steps
  • Delete and recreate the branch with different code
  • Scoured the pipeline troubleshooting docs, but I don't see this anywhere

This has to be the worst error message GitLab shows, there is no way for me to debug what is going wrong. What am I missing here?


Solution

  • I figured out the problem. Apparently, GitLab has a certain naming convention for the variables. I added a user defined variable in the gitlab-ci config called SAMPLE-VARIABLE. Turns out you cannot use - in the name of the variable. Renaming it to SAMPLE_VARIABLE did the trick.
    However, it would be good for GitLab to give clear error messages rather than throwing such a generic message at the end user and expecting them to figure it out. I spent almost a whole entire day trying out different things to figure out what was exactly going wrong here