Dynamic gitlab-ci files

Hi,

I’m trying to setup a dynamic gitlab-ci file that includes the needed gitlab-ci file based on a project variable.
Unfortunately I can’t seem to get this to work, i’ve read the documentation and searched the forum but unfortunately I can’t find any solutions.

Essentially I wanted to do something like the snippet below but I noticed I couldn’t use variables in the file method ( Returns “Invalid config: File does not exist”. ).

include:
  - project: 'tools/gitlab-ci'
    file: '/gitlab-ci-$GITLABFILE.yml'
    only:
      - $GITLABFILE
include:
  - project: 'tools/gitlab-ci'
    file: '/gitlab-ci.yml'
    only:
      - $GITLABFILE == null

Since I couldn’t use a variable in the file method i tried the below config but unfortunately it always loads the last file and ignores the only keyword.

include:
  - project: 'tools/gitlab-ci'
    file: '/gitlab-ci.yml'
    except:
      variables:
        - $GITLABFILE
        
  - project: 'tools/gitlab-ci'
    file: '/gitlab-ci-legacy.yml'
    only:
      variables:
        - $GITLABFILE == 'legacy'

  - project: 'tools/gitlab-ci'
    file: '/gitlab-ci-legacy-nobuild.yml'
    only:
      variables:
        - $GITLABFILE == 'legacy-nobuild'

What is the appropriate way of achieving a dynamic gitlab-ci is it even possible ?
Any help and/or suggestions are appreciated.

I also asked this question on StackOverflow, thankfully I did get an answer there.
See the solution in the StackOverflow question: https://stackoverflow.com/questions/56852576/how-to-setup-a-dynamic-gitlab-ci-file