Sto lavorando a un progetto che utilizza Travis CI. Alcuni dei nostri test richiedono che le credenziali sicure siano definite in variabili d'ambiente, altrimenti vengono saltate. Stiamo utilizzando the encrypt
command of the Travis CLI gem per definire un secure environment variable per il nostro repository principale, owner/Project
. Questa variabile è incluso nel nostro file .travis.yml
come segue:Definizione di variabili di ambiente sicure per più repository in un singolo .travis.yml
env:
secure: "av9hxTZp/Dhe9xAOq6WlhTNDoWjjczN3lFanG6h/3h4kW7DsxhfXMRA96z6MambbC6c9ARFiwsQ24NeCAfPQ1m6r9uZwNkusqnRDOwZQeVQcmopnoNNG4Kd/9oclIVgsAlSG6WfhkyQPUG2p7PkOvxFV4/YjDSViYDR3eoih3JA="
travis encrypt
ha cifrato queste variabili utilizzando la chiave privata per la nostra owner/Project
, e Travis esegue i test accreditati con successo per quel repository.
Tuttavia, abbiamo un altro repository, contributor/Project
, che viene utilizzato anche per lo sviluppo. Quando Travis viene eseguito in quel repository, le variabili di ambiente sicuro non sono disponibili e i test credenziali vengono saltati.
ho usato travis encrypt
per cifrare un set di credenziali per contributor/Project
, e ha cercato di aggiungerlo alla .travis.yml
in questo modo:
env:
- secure: "av9hxTZp/Dhe9xAOq6WlhTNDoWjjczN3lFanG6h/3h4kW7DsxhfXMRA96z6MambbC6c9ARFiwsQ24NeCAfPQ1m6r9uZwNkusqnRDOwZQeVQcmopnoNNG4Kd/9oclIVgsAlSG6WfhkyQPUG2p7PkOvxFV4/YjDSViYDR3eoih3JA="
- secure: "TcOCPDytGQpQgiP4w4LRdLXn+pUvhf5SjJF4J3TXjaPUCfomNfod2WTZn3v4WBR2kg3UCaeqFo2BmGUdwCdPbrAZ3cF2W749HLNU0Z2zxFWru5W+GAGgUi2FXIzzjF+U8Hb/2fLZ6GoUiSlNzVHKo/+kvLDAyuGnGFwfH7dpEb8="
Ciò ha provocato Travis corsa due diverse versioni di la build. Si è tentato di utilizzare ogni set di credenziali sicure. Poiché solo un set era valido per un determinato repository, ciò comporterebbe l'esecuzione della suite di test due volte, una volta con credenziali e una volta senza. You can see an example build here.
Questa configurazione aggiuntiva è inutile e inutile. Se il test è in esecuzione in un ambiente in cui non sono disponibili né le credenziali sicure (come una richiesta di pull da un fork), la suite di test verrà eseguita due volte senza credenziali. Aggiungere più insiemi di credenziali sarebbe anche peggio; avresti diverse build ridondanti noncredenziali per ogni build credenziale.
Come è possibile definire variabili di ambiente sicure per più repository in una singola configurazione di Travis senza causare ulteriori build?
Grazie per aver condiviso questo. Stavo iniziando a sentirmi disperata! – ratiaris