Config import, deep_merge_append, apt packages

Hello,

This is from a private build https://travis-ci.com/DTSL/go-project-template/jobs/255724963/config

I’m trying to import several config files, and merge the key “addons.apt.packages”.

My first config defines:

addons:
  apt:
    packages: ['pcregrep']

My second config defines:

addons:
  apt:
    packages: ['docker-ce']

I’ve imported all config files like this:

import:
  - source: .travis/common.yml
    mode: deep_merge_append

As you can see in my build, I get this result:

  "addons": {
    "apt": {
      "packages": [
        "docker-ce"
      ]
    }
  },

I expect to see both packages in the array.

Am I misunderstanding something ?

I think I’ve solved my problem.
Apparently, adding version: ~> 1.0 was not enough.
I also need to enable the “config validation” in the settings.
Maybe I didn’t read the documentation correctly.

It’s very strange to be able to import configs by adding version: ~> 1.0.
Because it seems that the “append” logic is broken if “config validation” is not enabled in settings.

(I’m not a Travis employee so can’t see your build but I have an idea what could be the cause)

Did you, by any chance, only specify the version: clause in the included part and not in the base .travis.yml?

No, "version: " was specified in th root file .travis.yml.
It was also specified in all imported config files.

Imprint