Последние пару дней я пытался настроить сборку Travis-CI для моего проекта сценариев bash. У меня проблема с введением псевдонима в .bashrc, который живет в сборке Трэвиса, а не из источников.
Ниже приведен мой простой пример создания псевдонима bash в файле .bashrc в Linux и неудачной попытки.
Travis-CI (.travis.yaml):
language: bash
git:
quiet: true
submodules: false
matrix:
include:
- os: linux
dist: xenial
script:
- sh test_bash.sh || travis_terminate 1;
- bash test_sourcing.sh || travis_terminate 1;
test_bash.sh:
current_shell=$(echo $SHELL)
if [ "$current_shell" != "/bin/bash" ]; then
echo "The current build is not working with the Bash Shell."
exit 1
fi
test_sourcing.sh
alias name='echo "John Doe"' >> $HOME/.bashrc
source $HOME/.bashrc
output=$(name)
if [ "$output" != "John Doe" ]; then
echo "Sourcing is not working for some reason."
exit 1
fi
Что я получаю из вывода моей сборки, так это:
$ bash -c 'echo $BASH_VERSION'
3.2.57(1)-release
0.02s$ sh test_bash.sh || travis_terminate 1;
The command "sh test_bash.sh || travis_terminate 1;" exited with 0.
$ bash test_sourcing.sh || travis_terminate 1;
test_sourcing.sh: line 3: name: command not found
Sourcing is not working for some reason.
Я ожидал, что все тесты пройдут, но мне сложно понять такую простую функцию. Единственное, о чем я могу думать, это то, что версия BASH имеет версию, псевдоним которой не поддерживается. Спасибо за любую помощь!