From 7502a7dc4d299cdacbf46275ad2c820e71c0e125 Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 07:52:53 +0000 Subject: [PATCH 01/21] what does this give us from a CI perspective? --- .gitlab-ci.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..90525e5a9 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,26 @@ +# use the official gcc image, based on debian +# can use verions as well, like gcc:5.2 +# see https://hub.docker.com/_/gcc/ +image: gcc + +build: + stage: build + # instead of calling g++ directly you can also use some build toolkit like make + # install the necessary build tools when needed + # before_script: + - apt update && apt -y install build-essential cmake git + script: + - whois + # artifacts: + # paths: + # - mybinary + # depending on your build setup it's most likely a good idea to cache outputs to reduce the build time + # cache: + # paths: + # - "*.o" + +# run tests using the binary built before +test: + stage: test + script: + - whois From 04dc74a1d6898dbd26961cfb13127117b74cc0fc Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 08:05:30 +0000 Subject: [PATCH 02/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 90525e5a9..3b0dca5fe 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,12 +8,12 @@ build: # instead of calling g++ directly you can also use some build toolkit like make # install the necessary build tools when needed # before_script: - - apt update && apt -y install build-essential cmake git + # - apt update && apt -y install make autoconf script: - whois - # artifacts: - # paths: - # - mybinary +# artifacts: +# paths: +# - mybinary # depending on your build setup it's most likely a good idea to cache outputs to reduce the build time # cache: # paths: From 8714f48ce7b1bed792e6cd582710a1ad3da72fbd Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 08:22:44 +0000 Subject: [PATCH 03/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3b0dca5fe..394f07136 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,7 @@ build: # before_script: # - apt update && apt -y install make autoconf script: - - whois + - ls /etc # artifacts: # paths: # - mybinary @@ -23,4 +23,4 @@ build: test: stage: test script: - - whois + - ls From d986354d53af6a22162257eebfb146f46237adc1 Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 08:30:18 +0000 Subject: [PATCH 04/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 394f07136..b614160e9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,13 @@ build: # before_script: # - apt update && apt -y install make autoconf script: + - ls ./ - ls /etc + - ls /bin + - ls /usr/bin + - cat /etc/lsb-release + - apt-get install -y cmake + - mkdir build; cd build; cmake ../openmw # artifacts: # paths: # - mybinary From de1cad86abb974e0d88c33d030cf518624204737 Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 08:37:26 +0000 Subject: [PATCH 05/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b614160e9..f8df83a5f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,9 +14,8 @@ build: - ls /etc - ls /bin - ls /usr/bin - - cat /etc/lsb-release - apt-get install -y cmake - - mkdir build; cd build; cmake ../openmw + - mkdir build; cd build; cmake ../ # artifacts: # paths: # - mybinary From 8c4731728c97822af846ae8e3322e1b77bdd568b Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 08:41:07 +0000 Subject: [PATCH 06/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f8df83a5f..7d1adb5ab 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,6 +14,8 @@ build: - ls /etc - ls /bin - ls /usr/bin + - apt-get update + - apt-cache search cmake - apt-get install -y cmake - mkdir build; cd build; cmake ../ # artifacts: From 20d8a424d6a5dd32aa373321a8f21aeba454f0ab Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 09:09:37 +0000 Subject: [PATCH 07/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7d1adb5ab..262c8147c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,8 +16,14 @@ build: - ls /usr/bin - apt-get update - apt-cache search cmake - - apt-get install -y cmake + - apt-get install -y cmake + - apt-get install -y libunshield-dev libtinyxml-dev + - apt-get install -y libboost-filesystem-dev libboost-program-options-dev libboost-system-dev + - apt-get install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev + - apt-get install -y libsdl2-dev libqt4-dev libopenal-dev + - apt-get install -y libbullet-dev libopenscenegraph-3.4-dev libmygui-dev - mkdir build; cd build; cmake ../ + - make -j4 # artifacts: # paths: # - mybinary From a89441e879d0bf31a7f1d9502a367371d5bd0b6d Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 09:26:10 +0000 Subject: [PATCH 08/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 262c8147c..28fdec103 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,11 +17,13 @@ build: - apt-get update - apt-cache search cmake - apt-get install -y cmake - - apt-get install -y libunshield-dev libtinyxml-dev + - apt-get install -y - apt-get install -y libboost-filesystem-dev libboost-program-options-dev libboost-system-dev - apt-get install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev - - apt-get install -y libsdl2-dev libqt4-dev libopenal-dev - - apt-get install -y libbullet-dev libopenscenegraph-3.4-dev libmygui-dev + - apt-get install -y libsdl2-dev libqt4-dev libopenal-dev libopenscenegraph-3.4-dev libmygui-dev libunshield-dev libtinyxml-dev + - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet-dev_2.87+dfsg-2_amd64.deb -o libbullet-dev_2.87+dfsg-2_amd64.deb + - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet2.87_2.87+dfsg-2_amd64.deb -o libbullet2.87_2.87+dfsg-2_amd64.deb + - dpkg -i *.deb - mkdir build; cd build; cmake ../ - make -j4 # artifacts: From e5dff83e38583a968f95217dd8c4fc183ef8c7ec Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 09:26:42 +0000 Subject: [PATCH 09/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 28fdec103..67481a71f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,7 +17,6 @@ build: - apt-get update - apt-cache search cmake - apt-get install -y cmake - - apt-get install -y - apt-get install -y libboost-filesystem-dev libboost-program-options-dev libboost-system-dev - apt-get install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev - apt-get install -y libsdl2-dev libqt4-dev libopenal-dev libopenscenegraph-3.4-dev libmygui-dev libunshield-dev libtinyxml-dev From bc0eb3349bf037ca599da1db2f21a15d17dc747c Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 10:33:35 +0000 Subject: [PATCH 10/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 67481a71f..b372e6dbf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,24 +10,22 @@ build: # before_script: # - apt update && apt -y install make autoconf script: - - ls ./ - - ls /etc - - ls /bin - - ls /usr/bin - apt-get update - - apt-cache search cmake - - apt-get install -y cmake - - apt-get install -y libboost-filesystem-dev libboost-program-options-dev libboost-system-dev + - apt-get install -y cmake libboost-filesystem-dev libboost-program-options-dev libboost-system-dev - apt-get install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev - - apt-get install -y libsdl2-dev libqt4-dev libopenal-dev libopenscenegraph-3.4-dev libmygui-dev libunshield-dev libtinyxml-dev + - apt-get install -y libsdl2-dev libqt4-dev libopenal-dev libopenscenegraph-3.4-dev libunshield-dev libtinyxml-dev + - apt-get install -y libmygui-dev libullet-dev # to be updated to latest below because stretch is too old - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet-dev_2.87+dfsg-2_amd64.deb -o libbullet-dev_2.87+dfsg-2_amd64.deb - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet2.87_2.87+dfsg-2_amd64.deb -o libbullet2.87_2.87+dfsg-2_amd64.deb + - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui.ogreplatform0debian1v5_3.2.2+dfsg-1_amd64.deb -o libmygui.ogreplatform0debian1v5_3.2.2+dfsg-1_amd64.deb + - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui.openglplatform0debian1v5_3.2.2+dfsg-1_amd64.deb -o libmygui.openglplatform0debian1v5_3.2.2+dfsg-1_amd64.deb + - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui-dev_3.2.2+dfsg-1_amd64.deb -o libmygui-dev_3.2.2+dfsg-1_amd64.deb - dpkg -i *.deb - mkdir build; cd build; cmake ../ - make -j4 -# artifacts: -# paths: -# - mybinary + artifacts: + paths: + - build # depending on your build setup it's most likely a good idea to cache outputs to reduce the build time # cache: # paths: From e3832cd2e2cbb3b46d3c71db14cf54289acf4ad4 Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 11:24:27 +0000 Subject: [PATCH 11/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b372e6dbf..f6e599a09 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,7 +14,7 @@ build: - apt-get install -y cmake libboost-filesystem-dev libboost-program-options-dev libboost-system-dev - apt-get install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev - apt-get install -y libsdl2-dev libqt4-dev libopenal-dev libopenscenegraph-3.4-dev libunshield-dev libtinyxml-dev - - apt-get install -y libmygui-dev libullet-dev # to be updated to latest below because stretch is too old + - apt-get install -y libmygui-dev libbullet-dev # to be updated to latest below because stretch is too old - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet-dev_2.87+dfsg-2_amd64.deb -o libbullet-dev_2.87+dfsg-2_amd64.deb - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet2.87_2.87+dfsg-2_amd64.deb -o libbullet2.87_2.87+dfsg-2_amd64.deb - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui.ogreplatform0debian1v5_3.2.2+dfsg-1_amd64.deb -o libmygui.ogreplatform0debian1v5_3.2.2+dfsg-1_amd64.deb From dddceba8f2d2911f4340094307e8e27536001e12 Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 11:32:37 +0000 Subject: [PATCH 12/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f6e599a09..be9986e6d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,10 +17,11 @@ build: - apt-get install -y libmygui-dev libbullet-dev # to be updated to latest below because stretch is too old - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet-dev_2.87+dfsg-2_amd64.deb -o libbullet-dev_2.87+dfsg-2_amd64.deb - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet2.87_2.87+dfsg-2_amd64.deb -o libbullet2.87_2.87+dfsg-2_amd64.deb - - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui.ogreplatform0debian1v5_3.2.2+dfsg-1_amd64.deb -o libmygui.ogreplatform0debian1v5_3.2.2+dfsg-1_amd64.deb +# - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui.ogreplatform0debian1v5_3.2.2+dfsg-1_amd64.deb -o libmygui.ogreplatform0debian1v5_3.2.2+dfsg-1_amd64.deb - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui.openglplatform0debian1v5_3.2.2+dfsg-1_amd64.deb -o libmygui.openglplatform0debian1v5_3.2.2+dfsg-1_amd64.deb + - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmyguiengine3debian1v5_3.2.2+dfsg-1_amd64.deb -o libmyguiengine3debian1v5_3.2.2+dfsg-1_amd64.deb - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui-dev_3.2.2+dfsg-1_amd64.deb -o libmygui-dev_3.2.2+dfsg-1_amd64.deb - - dpkg -i *.deb + - dpkg -i *.deb --ignore-depends - mkdir build; cd build; cmake ../ - make -j4 artifacts: From a166534226dd34d7ca2e5da8a9ee805c8e9b02a7 Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 11:41:19 +0000 Subject: [PATCH 13/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index be9986e6d..fed43f495 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,7 +21,7 @@ build: - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui.openglplatform0debian1v5_3.2.2+dfsg-1_amd64.deb -o libmygui.openglplatform0debian1v5_3.2.2+dfsg-1_amd64.deb - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmyguiengine3debian1v5_3.2.2+dfsg-1_amd64.deb -o libmyguiengine3debian1v5_3.2.2+dfsg-1_amd64.deb - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui-dev_3.2.2+dfsg-1_amd64.deb -o libmygui-dev_3.2.2+dfsg-1_amd64.deb - - dpkg -i *.deb --ignore-depends + - dpkg --ignore-depends=libmygui.ogreplatform0debian1v5 -i *.deb - mkdir build; cd build; cmake ../ - make -j4 artifacts: From 1c736ea06448ee9660668fc31e1ca4f92d593550 Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 12:46:19 +0000 Subject: [PATCH 14/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fed43f495..ac0fb1175 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,10 +5,6 @@ image: gcc build: stage: build - # instead of calling g++ directly you can also use some build toolkit like make - # install the necessary build tools when needed - # before_script: - # - apt update && apt -y install make autoconf script: - apt-get update - apt-get install -y cmake libboost-filesystem-dev libboost-program-options-dev libboost-system-dev @@ -17,23 +13,23 @@ build: - apt-get install -y libmygui-dev libbullet-dev # to be updated to latest below because stretch is too old - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet-dev_2.87+dfsg-2_amd64.deb -o libbullet-dev_2.87+dfsg-2_amd64.deb - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet2.87_2.87+dfsg-2_amd64.deb -o libbullet2.87_2.87+dfsg-2_amd64.deb -# - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui.ogreplatform0debian1v5_3.2.2+dfsg-1_amd64.deb -o libmygui.ogreplatform0debian1v5_3.2.2+dfsg-1_amd64.deb - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui.openglplatform0debian1v5_3.2.2+dfsg-1_amd64.deb -o libmygui.openglplatform0debian1v5_3.2.2+dfsg-1_amd64.deb - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmyguiengine3debian1v5_3.2.2+dfsg-1_amd64.deb -o libmyguiengine3debian1v5_3.2.2+dfsg-1_amd64.deb - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui-dev_3.2.2+dfsg-1_amd64.deb -o libmygui-dev_3.2.2+dfsg-1_amd64.deb - dpkg --ignore-depends=libmygui.ogreplatform0debian1v5 -i *.deb - mkdir build; cd build; cmake ../ - make -j4 + - DESTDIR=artifacts make install artifacts: paths: - - build + - build/artifacts/ # depending on your build setup it's most likely a good idea to cache outputs to reduce the build time - # cache: - # paths: - # - "*.o" + cache: + paths: + - "*.o" # run tests using the binary built before -test: - stage: test - script: - - ls +#test: +# stage: test +# script: +# - ls From cc396f4dfdace36c9efd12526d52eefb5392a762 Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 19:06:59 +0000 Subject: [PATCH 15/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ac0fb1175..5f2cbf912 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,6 +6,7 @@ image: gcc build: stage: build script: + - nproc - apt-get update - apt-get install -y cmake libboost-filesystem-dev libboost-program-options-dev libboost-system-dev - apt-get install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev @@ -18,7 +19,7 @@ build: - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui-dev_3.2.2+dfsg-1_amd64.deb -o libmygui-dev_3.2.2+dfsg-1_amd64.deb - dpkg --ignore-depends=libmygui.ogreplatform0debian1v5 -i *.deb - mkdir build; cd build; cmake ../ - - make -j4 + - make -j3 - DESTDIR=artifacts make install artifacts: paths: @@ -29,7 +30,7 @@ build: - "*.o" # run tests using the binary built before -#test: -# stage: test -# script: -# - ls +test: + stage: test + script: + - true From 3c933ebaad915b6726e55aff10b228df4fce9b34 Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Tue, 12 Jun 2018 19:10:15 +0000 Subject: [PATCH 16/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5f2cbf912..2a4607a38 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,4 +33,4 @@ build: test: stage: test script: - - true + - ls From 2e2be76e3ff700a3348d6420571b650a9e2cdd40 Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Wed, 13 Jun 2018 08:20:31 +0000 Subject: [PATCH 17/21] Update .gitlab-ci.yml --- .gitlab-ci.yml | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2a4607a38..18ae73124 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,23 +3,29 @@ # see https://hub.docker.com/_/gcc/ image: gcc +cache: + key: apt-cache + paths: + - apt-cache/ + +before_script: + - export APT_CACHE_DIR=`pwd`/apt-cache && mkdir -pv $APT_CACHE_DIR + - apt-get update -yq + - apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -y cmake libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev libsdl2-dev libqt4-dev libopenal-dev libopenscenegraph-3.4-dev libunshield-dev libtinyxml-dev +# - apt-get install -y libmygui-dev libbullet-dev # to be updated to latest below because stretch is too old + - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet-dev_2.87+dfsg-2_amd64.deb -o libbullet-dev_2.87+dfsg-2_amd64.deb + - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet2.87_2.87+dfsg-2_amd64.deb -o libbullet2.87_2.87+dfsg-2_amd64.deb + - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui.openglplatform0debian1v5_3.2.2+dfsg-1_amd64.deb -o libmygui.openglplatform0debian1v5_3.2.2+dfsg-1_amd64.deb + - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmyguiengine3debian1v5_3.2.2+dfsg-1_amd64.deb -o libmyguiengine3debian1v5_3.2.2+dfsg-1_amd64.deb + - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui-dev_3.2.2+dfsg-1_amd64.deb -o libmygui-dev_3.2.2+dfsg-1_amd64.deb + - dpkg --ignore-depends=libmygui.ogreplatform0debian1v5 -i *.deb + build: stage: build script: - nproc - - apt-get update - - apt-get install -y cmake libboost-filesystem-dev libboost-program-options-dev libboost-system-dev - - apt-get install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev - - apt-get install -y libsdl2-dev libqt4-dev libopenal-dev libopenscenegraph-3.4-dev libunshield-dev libtinyxml-dev - - apt-get install -y libmygui-dev libbullet-dev # to be updated to latest below because stretch is too old - - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet-dev_2.87+dfsg-2_amd64.deb -o libbullet-dev_2.87+dfsg-2_amd64.deb - - curl http://ftp.us.debian.org/debian/pool/main/b/bullet/libbullet2.87_2.87+dfsg-2_amd64.deb -o libbullet2.87_2.87+dfsg-2_amd64.deb - - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui.openglplatform0debian1v5_3.2.2+dfsg-1_amd64.deb -o libmygui.openglplatform0debian1v5_3.2.2+dfsg-1_amd64.deb - - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmyguiengine3debian1v5_3.2.2+dfsg-1_amd64.deb -o libmyguiengine3debian1v5_3.2.2+dfsg-1_amd64.deb - - curl http://ftp.us.debian.org/debian/pool/main/m/mygui/libmygui-dev_3.2.2+dfsg-1_amd64.deb -o libmygui-dev_3.2.2+dfsg-1_amd64.deb - - dpkg --ignore-depends=libmygui.ogreplatform0debian1v5 -i *.deb - - mkdir build; cd build; cmake ../ - - make -j3 + - mkdir build; cd build; cmake -DCMAKE_BUILD_TYPE=MinSizeRel ../ + - make -j2 - DESTDIR=artifacts make install artifacts: paths: From a49649c313ce267318d203a0687afe53ac37d70b Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Wed, 13 Jun 2018 09:29:30 +0000 Subject: [PATCH 18/21] Try to get it to run and build on my docker instance. --- .gitlab-ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 18ae73124..961965763 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,6 +3,11 @@ # see https://hub.docker.com/_/gcc/ image: gcc +job: + tags: + - openmw + - debian + cache: key: apt-cache paths: @@ -25,7 +30,7 @@ build: script: - nproc - mkdir build; cd build; cmake -DCMAKE_BUILD_TYPE=MinSizeRel ../ - - make -j2 + - make -j4 - DESTDIR=artifacts make install artifacts: paths: From 559754fa7683dd33084013e977689fdc7dbf06dc Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Wed, 13 Jun 2018 09:31:39 +0000 Subject: [PATCH 19/21] try this dance again --- .gitlab-ci.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 961965763..2c47affd6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,11 +3,6 @@ # see https://hub.docker.com/_/gcc/ image: gcc -job: - tags: - - openmw - - debian - cache: key: apt-cache paths: From da37585a8e708fd974d99ffd3f01a55ae16fac1f Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Wed, 13 Jun 2018 10:15:07 +0000 Subject: [PATCH 20/21] Update .gitlab-ci.yml so that we only build with -j2 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2c47affd6..18ae73124 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,7 +25,7 @@ build: script: - nproc - mkdir build; cd build; cmake -DCMAKE_BUILD_TYPE=MinSizeRel ../ - - make -j4 + - make -j2 - DESTDIR=artifacts make install artifacts: paths: From 81b78a82e822941f35e73e531c89c975d1241536 Mon Sep 17 00:00:00 2001 From: Andrei Kortunov Date: Fri, 1 Dec 2017 10:07:02 +0400 Subject: [PATCH 21/21] AI: try to open doors every AI_REACTION_TIME seconds (bug #4454) --- CHANGELOG.md | 1 + apps/openmw/mwclass/container.cpp | 15 +++--- apps/openmw/mwclass/door.cpp | 19 +++---- apps/openmw/mwmechanics/aipackage.cpp | 69 +++++++++++++------------- apps/openmw/mwmechanics/aipackage.hpp | 1 + apps/openmw/mwmechanics/obstacle.cpp | 21 +++++--- apps/openmw/mwmechanics/obstacle.hpp | 2 +- apps/openmw/mwworld/containerstore.cpp | 2 +- 8 files changed, 66 insertions(+), 64 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cc66bc61..90a198bea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ Bug #4429: [Windows] Error on build INSTALL.vcxproj project (debug) with cmake 3.7.2 Bug #4432: Guards behaviour is incorrect if they do not have AI packages Bug #4433: Guard behaviour is incorrect with Alarm = 0 + Bug #4454: AI opens doors too slow Feature #4324: Add CFBundleIdentifier in Info.plist to allow for macOS function key shortcuts Feature #4345: Add equivalents for the command line commands to Launcher Feature #4444: Per-group KF-animation files support diff --git a/apps/openmw/mwclass/container.cpp b/apps/openmw/mwclass/container.cpp index b6a46cff8..1d51a7830 100644 --- a/apps/openmw/mwclass/container.cpp +++ b/apps/openmw/mwclass/container.cpp @@ -139,24 +139,21 @@ namespace MWClass const std::string trapActivationSound = "Disarm Trap Fail"; MWWorld::Ptr player = MWBase::Environment::get().getWorld ()->getPlayerPtr(); - const MWWorld::InventoryStore& invStore = player.getClass().getInventoryStore(player); + MWWorld::InventoryStore& invStore = player.getClass().getInventoryStore(player); bool isLocked = ptr.getCellRef().getLockLevel() > 0; bool isTrapped = !ptr.getCellRef().getTrap().empty(); bool hasKey = false; std::string keyName; - // make key id lowercase - std::string keyId = ptr.getCellRef().getKey(); - Misc::StringUtils::lowerCaseInPlace(keyId); - for (MWWorld::ConstContainerStoreIterator it = invStore.cbegin(); it != invStore.cend(); ++it) + const std::string keyId = ptr.getCellRef().getKey(); + if (!keyId.empty()) { - std::string refId = it->getCellRef().getRefId(); - Misc::StringUtils::lowerCaseInPlace(refId); - if (refId == keyId) + MWWorld::Ptr keyPtr = invStore.search(keyId); + if (!keyPtr.isEmpty()) { hasKey = true; - keyName = it->getClass().getName(*it); + keyName = keyPtr.getClass().getName(keyPtr); } } diff --git a/apps/openmw/mwclass/door.cpp b/apps/openmw/mwclass/door.cpp index 903ec4958..eba87a47b 100644 --- a/apps/openmw/mwclass/door.cpp +++ b/apps/openmw/mwclass/door.cpp @@ -114,7 +114,7 @@ namespace MWClass const std::string lockedSound = "LockedDoor"; const std::string trapActivationSound = "Disarm Trap Fail"; - const MWWorld::ContainerStore &invStore = actor.getClass().getContainerStore(actor); + MWWorld::ContainerStore &invStore = actor.getClass().getContainerStore(actor); bool isLocked = ptr.getCellRef().getLockLevel() > 0; bool isTrapped = !ptr.getCellRef().getTrap().empty(); @@ -135,21 +135,14 @@ namespace MWClass animation->addSpellCastGlow(effect, 1); // 1 second glow to match the time taken for a door opening or closing } - // make key id lowercase - std::string keyId = ptr.getCellRef().getKey(); + const std::string keyId = ptr.getCellRef().getKey(); if (!keyId.empty()) { - Misc::StringUtils::lowerCaseInPlace(keyId); - for (MWWorld::ConstContainerStoreIterator it = invStore.cbegin(); it != invStore.cend(); ++it) + MWWorld::Ptr keyPtr = invStore.search(keyId); + if (!keyPtr.isEmpty()) { - std::string refId = it->getCellRef().getRefId(); - Misc::StringUtils::lowerCaseInPlace(refId); - if (refId == keyId) - { - hasKey = true; - keyName = it->getClass().getName(*it); - break; - } + hasKey = true; + keyName = keyPtr.getClass().getName(keyPtr); } } diff --git a/apps/openmw/mwmechanics/aipackage.cpp b/apps/openmw/mwmechanics/aipackage.cpp index 6a0f5b013..e6cca0523 100644 --- a/apps/openmw/mwmechanics/aipackage.cpp +++ b/apps/openmw/mwmechanics/aipackage.cpp @@ -120,6 +120,9 @@ bool MWMechanics::AiPackage::pathTo(const MWWorld::Ptr& actor, const ESM::Pathgr if (!isDestReached && mTimer > AI_REACTION_TIME) { + if (actor.getClass().isBipedal(actor)) + openDoors(actor); + bool wasShortcutting = mIsShortcutting; bool destInLOS = false; @@ -209,41 +212,10 @@ void MWMechanics::AiPackage::evadeObstacles(const MWWorld::Ptr& actor, float dur // first check if obstacle is a door static float distance = MWBase::Environment::get().getWorld()->getMaxActivationDistance(); - MWWorld::Ptr door = getNearbyDoor(actor, distance); - if (door != MWWorld::Ptr() && actor.getClass().isBipedal(actor)) + const MWWorld::Ptr door = getNearbyDoor(actor, distance); + if (!door.isEmpty() && actor.getClass().isBipedal(actor)) { - // note: AiWander currently does not open doors - if (getTypeId() != TypeIdWander && !door.getCellRef().getTeleport() && door.getClass().getDoorState(door) == 0) - { - if ((door.getCellRef().getTrap().empty() && door.getCellRef().getLockLevel() <= 0 )) - { - MWBase::Environment::get().getWorld()->activate(door, actor); - return; - } - - std::string keyId = door.getCellRef().getKey(); - if (keyId.empty()) - return; - - bool hasKey = false; - const MWWorld::ContainerStore &invStore = actor.getClass().getContainerStore(actor); - - // make key id lowercase - Misc::StringUtils::lowerCaseInPlace(keyId); - for (MWWorld::ConstContainerStoreIterator it = invStore.cbegin(); it != invStore.cend(); ++it) - { - std::string refId = it->getCellRef().getRefId(); - Misc::StringUtils::lowerCaseInPlace(refId); - if (refId == keyId) - { - hasKey = true; - break; - } - } - - if (hasKey) - MWBase::Environment::get().getWorld()->activate(door, actor); - } + openDoors(actor); } else { @@ -251,6 +223,35 @@ void MWMechanics::AiPackage::evadeObstacles(const MWWorld::Ptr& actor, float dur } } +void MWMechanics::AiPackage::openDoors(const MWWorld::Ptr& actor) +{ + static float distance = MWBase::Environment::get().getWorld()->getMaxActivationDistance(); + + const MWWorld::Ptr door = getNearbyDoor(actor, distance); + if (door == MWWorld::Ptr()) + return; + + // note: AiWander currently does not open doors + if (getTypeId() != TypeIdWander && !door.getCellRef().getTeleport() && door.getClass().getDoorState(door) == 0) + { + if ((door.getCellRef().getTrap().empty() && door.getCellRef().getLockLevel() <= 0 )) + { + MWBase::Environment::get().getWorld()->activate(door, actor); + return; + } + + const std::string keyId = door.getCellRef().getKey(); + if (keyId.empty()) + return; + + MWWorld::ContainerStore &invStore = actor.getClass().getContainerStore(actor); + MWWorld::Ptr keyPtr = invStore.search(keyId); + + if (!keyPtr.isEmpty()) + MWBase::Environment::get().getWorld()->activate(door, actor); + } +} + const MWMechanics::PathgridGraph& MWMechanics::AiPackage::getPathGridGraph(const MWWorld::CellStore *cell) { const ESM::CellId& id = cell->getCell()->getCellId(); diff --git a/apps/openmw/mwmechanics/aipackage.hpp b/apps/openmw/mwmechanics/aipackage.hpp index 7e8f905ad..2b685accc 100644 --- a/apps/openmw/mwmechanics/aipackage.hpp +++ b/apps/openmw/mwmechanics/aipackage.hpp @@ -123,6 +123,7 @@ namespace MWMechanics virtual bool doesPathNeedRecalc(const ESM::Pathgrid::Point& newDest, const MWWorld::CellStore* currentCell); void evadeObstacles(const MWWorld::Ptr& actor, float duration, const ESM::Position& pos); + void openDoors(const MWWorld::Ptr& actor); const PathgridGraph& getPathGridGraph(const MWWorld::CellStore* cell); diff --git a/apps/openmw/mwmechanics/obstacle.cpp b/apps/openmw/mwmechanics/obstacle.cpp index 3c6f14bfd..0635a5520 100644 --- a/apps/openmw/mwmechanics/obstacle.cpp +++ b/apps/openmw/mwmechanics/obstacle.cpp @@ -26,13 +26,13 @@ namespace MWMechanics bool proximityToDoor(const MWWorld::Ptr& actor, float minDist) { - if(getNearbyDoor(actor, minDist)!=MWWorld::Ptr()) - return true; - else + if(getNearbyDoor(actor, minDist).isEmpty()) return false; + else + return true; } - MWWorld::Ptr getNearbyDoor(const MWWorld::Ptr& actor, float minDist) + const MWWorld::Ptr getNearbyDoor(const MWWorld::Ptr& actor, float minDist) { MWWorld::CellStore *cell = actor.getCell(); @@ -50,6 +50,16 @@ namespace MWMechanics const MWWorld::LiveCellRef& ref = *it; osg::Vec3f doorPos(ref.mData.getPosition().asVec3()); + + // FIXME: cast + const MWWorld::Ptr doorPtr = MWWorld::Ptr(&const_cast &>(ref), actor.getCell()); + + int doorState = doorPtr.getClass().getDoorState(doorPtr); + float doorRot = ref.mData.getPosition().rot[2] - doorPtr.getCellRef().getPosition().rot[2]; + + if (doorState != 0 || doorRot != 0) + continue; // the door is already opened/opening + doorPos.z() = 0; float angle = std::acos(actorDir * (doorPos - pos) / (actorDir.length() * (doorPos - pos).length())); @@ -62,8 +72,7 @@ namespace MWMechanics if ((pos - doorPos).length2() > minDist*minDist) continue; - // FIXME cast - return MWWorld::Ptr(&const_cast &>(ref), actor.getCell()); // found, stop searching + return doorPtr; // found, stop searching } return MWWorld::Ptr(); // none found diff --git a/apps/openmw/mwmechanics/obstacle.hpp b/apps/openmw/mwmechanics/obstacle.hpp index f71207346..6a84e0ef9 100644 --- a/apps/openmw/mwmechanics/obstacle.hpp +++ b/apps/openmw/mwmechanics/obstacle.hpp @@ -17,7 +17,7 @@ namespace MWMechanics /// Returns door pointer within range. No guarantee is given as to which one /** \return Pointer to the door, or NULL if none exists **/ - MWWorld::Ptr getNearbyDoor(const MWWorld::Ptr& actor, float minDist); + const MWWorld::Ptr getNearbyDoor(const MWWorld::Ptr& actor, float minDist); class ObstacleCheck { diff --git a/apps/openmw/mwworld/containerstore.cpp b/apps/openmw/mwworld/containerstore.cpp index dd5d7a853..657d59c59 100644 --- a/apps/openmw/mwworld/containerstore.cpp +++ b/apps/openmw/mwworld/containerstore.cpp @@ -47,7 +47,7 @@ namespace for (typename MWWorld::CellRefList::List::iterator iter (list.mList.begin()); iter!=list.mList.end(); ++iter) { - if (Misc::StringUtils::ciEqual(iter->mBase->mId, id2)) + if (Misc::StringUtils::ciEqual(iter->mBase->mId, id2) && iter->mData.getCount()) { MWWorld::Ptr ptr (&*iter, 0); ptr.setContainerStore (store);