commit 54363287d1f1f2a777b156451042cb86a7234a94
parent 3a29713f9de38a6200ce0d2482bcba888254d0a0
Author: Georges Dupéron <georges.duperon@gmail.com>
Date: Thu, 19 Jul 2018 23:10:17 +0200
Pre-fill known_hosts, as it doesn't already know github on Travis with macos
Diffstat:
3 files changed, 42 insertions(+), 27 deletions(-)
diff --git a/.travis.yml b/.travis.yml
@@ -103,21 +103,22 @@ matrix:
# TODO: test in SH mode
before_install:
- - brew install cdrtools || true
- - brew install mtools || true
- - brew cask install gdisk || true
- - brew install imagemagick --with-x11 || true
- - make --version || true
- - nasm -v || true
- - mtools --version || true
- - mtools || true
- - mkisofs --version || true
- - zip --help || true
- - unzip --version || true
- - gdisk --version || true
- - fdisk --version || true
- - import --version || true
- - Xvfb -h || true
+ - brew install cdrtools || true
+ - brew install mtools || true
+ - brew cask install gdisk || true
+ - brew install imagemagick || true # --with-x11
+ - make --version || true
+ - nasm -v || true
+ - mtools --version || true
+ - mtools || true
+ - mkisofs --version || true
+ - zip --help || true
+ - unzip --version || true
+ - gdisk --version || true
+ - fdisk --version || true
+ - import --version || true
+ - Xvfb -h || true
+ - ssh -V || true
- ./utils/install-sikulix.sh
- export PATH="$HOME/sikulix/:$PATH"
- if test "$MODE" = virtualbox -o "$MODE" = self-test; then ./utils/install-virtualbox.sh; fi
diff --git a/Makefile b/Makefile
@@ -391,18 +391,24 @@ build/test_pass/sudo_iso_mount: ${os_filename} build/check_makefile | build/mnt_
touch $@
.PHONY: test/macos
-test/macos: all test/noemu test/macos-sh
+test/macos: all test/noemu test/macos-sh test/macos-sh-x11
-.PHONY: test/macos-sh
-test/macos-sh: build/check_makefile | deploy-screenshots
- sudo mkdir /tmp/.X11-unix
+.PHONY: test/macos-sh-x11
+test/macos-sh-x11:
+ sudo mkdir -p /tmp/.X11-unix
sudo chmod a+rwxt /tmp/.X11-unix
xvfb :42 & \
- sleep 10; \
- DISPLAY=:42 xterm -e 'sh -c "echo hello; sleep 30"' & \
sleep 5; \
- DISPLAY=:42 import -window root deploy-screenshots/macos.png
- ls -l deploy-screenshots/
- identify deploy-screenshots/* || true
+ DISPLAY=:42 xterm -e ./os.bat & \
+ sleep 5; \
+# DISPLAY=:42 import -window root deploy-screenshots/macos-sh-x11.png
+ screencapture deploy-screenshots/macos-sh-x11-screencapture.png
+
+.PHONY: test/macos-sh
+test/macos-sh: build/check_makefile | deploy-screenshots
+ osascript -e 'tell app "Terminal" to activate'
+ osascript -e 'tell app "Terminal" to do script "'"$$PWD"'/os.bat"'
+ sleep 5
+ screencapture deploy-screenshots/screencapture-os-bat.png
# See https://wiki.osdev.org/EFI#Emulation to emulate an UEFI system with qemu, to test the EFI boot from hdd / cd / fd (?).
diff --git a/utils/auto-push.sh b/utils/auto-push.sh
@@ -63,14 +63,22 @@ else
chmod 600 ~/.ssh/travis-deploy-key-id_rsa
eval `ssh-agent -s`
ssh-add ~/.ssh/travis-deploy-key-id_rsa
-
+ # TODO: all the config should be in a separate folder, instead of using ~/.ssh for the id_rsa.
+
+ known_hosts_d="$(UMASK=077 mktemp -d)"
+ touch ${known_hosts_d}/known_hosts
+ chmod 600 ${known_hosts_d}/known_hosts
+ echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" >> "${known_hosts_d}/known_hosts"
+
TRAVIS_AUTO_PUSH_REPO_DIR="$HOME/travis-temp-auto-push-$(date +%s)"
if test -e "$TRAVIS_AUTO_PUSH_REPO_DIR"; then rm -rf "$TRAVIS_AUTO_PUSH_REPO_DIR"; fi
- git clone -b "$deploy_base_commit" --depth 1 --shallow-submodules "$deploy_repo" "$TRAVIS_AUTO_PUSH_REPO_DIR"
+ GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=${known_hosts_d}/known_hosts" git clone -b "$deploy_base_commit" --depth 1 --shallow-submodules "$deploy_repo" "$TRAVIS_AUTO_PUSH_REPO_DIR"
(cd "$TRAVIS_AUTO_PUSH_REPO_DIR" && git checkout -b "$deploy_branch")
rsync -a "${deploy_directory}/" "${TRAVIS_AUTO_PUSH_REPO_DIR}/"
(cd "$TRAVIS_AUTO_PUSH_REPO_DIR" && git add -A . && git commit --allow-empty -m "Auto-publish to $deploy_branch") > commit.log || (cat commit.log && exit 1)
(cd "$TRAVIS_AUTO_PUSH_REPO_DIR" && git log --oneline --decorate --graph -10)
echo '(cd '"$TRAVIS_AUTO_PUSH_REPO_DIR"' && git push --force --quiet "'"$deploy_repo"'" "'"$deploy_branch"'")'
- (cd "$TRAVIS_AUTO_PUSH_REPO_DIR" && git push --force --quiet "$deploy_repo" "$deploy_branch" >/dev/null 2>&1) >/dev/null 2>&1 # redirect to /dev/null to avoid showing credentials.
+ (cd "$TRAVIS_AUTO_PUSH_REPO_DIR" && GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=${known_hosts_d}/known_hosts" git push --force --quiet "$deploy_repo" "$deploy_branch" >/dev/null 2>&1) >/dev/null 2>&1 # redirect to /dev/null to avoid showing credentials.
+ # Cleanup:
+ rm "${known_hosts_d}/known_hosts"
fi