Commit graph

31 commits

Author SHA1 Message Date
Jordan Petridis
bdbef0449c ci_template: build windows image in the ci
Build the images in the ci runners like we do,
for the linux containers.

Kudos to mesa for the powershell script that
reimplements the ci-templates behavior.

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4304

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/392>
2021-02-25 04:25:25 +02:00
Jordan Petridis
8f0481f19a docker/windows: make the powershell scripts more robust
Check the exit codes of various commands and fail
appropriatly upon error.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/392>
2021-02-25 04:25:25 +02:00
Biswapriyo Nath
2cd6f5f6b9 docker/windows: Update msys2 installer to 2021-02-15 version.
This fixes the PGP key installation issue.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/396>
2021-02-16 15:57:39 +02:00
Jordan Petridis
a26129c78c windows: rebuild docker image
also:

Revert "citemplate: set the cerbero msvc build to allow_failure again"

This reverts commit 3dddfacfbf.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/359>
2020-10-01 11:51:19 +03:00
Nirbheek Chauhan
a22f4d85a3 docker/cerbero: Do not remove toolchain downloads
We will use these when running bootstrap in the actual jobs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/350>
2020-09-23 14:18:57 +05:30
Nirbheek Chauhan
98e3c7d8b8 cerbero ci: Refactor cerbero_before_script
We were doing a few things suboptimally:

1. Making a symlink from the current directory to
   ../../gstreamer/cerbero so that build-tools kept working, which
   should not be necessary since cerbero relocates all binaries inside
   the cerbero homedir after extracting the cache.

2. Hard-coding the cerbero builddir when building on Windows because
   `pwd` was outputting an MSYS-style path which Python can't read

3. rsync-ing all the contents of $CERBERO_HOST_DIR, which is
   bad because we should be building on top of the artifact cache.
   The only thing we want from $CERBERO_HOST_DIR is cerbero-sources
   (the network cache), and we can setup the toolchain during
   bootstrap with the new --system and --toolchains arguments which
   were split out of --system-only.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/350>
2020-09-22 21:58:59 +05:30
Jordan Petridis
b857a5ada1 citemplate: add initial cerbero msvc builds
This commit adds the last bits needed to have a working
CI job of cerbero using mingw and msvc17 toolchain.

It adds a new stage to the docker image that mirrors
the setup of the cerbero fedora docker build, and
tweaks the cerbero_setup script run by jobs with
a couple windows specific fixes.

Close #39

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/334>
2020-09-16 20:56:14 +03:00
Jordan Petridis
894e72ee87 docker/windows: move the git user config outside the script
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/333>
2020-09-14 17:36:54 +00:00
Jordan Petridis
800c46e67c docker/windows: tweak installation of git
Make sure we set autocrlf to false, which is needed by cerbero.
Additionally remove useless for the container integrations with
the shell.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/333>
2020-09-14 17:36:54 +00:00
Jordan Petridis
869fa72595 docker/windows: update msys snapshot
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/297>
2020-06-16 01:54:02 +05:30
Jordan Petridis
b8fa6db873 docker/windows: add script to build the image with the correct branch and tag
also move the default_branch arg later in the dockerfile to
avoid invalidating previous layers

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/287>
2020-04-27 15:49:32 +00:00
Jordan Petridis
edac99f441 windows/docker: allow to specify the branch to pull for gst-build
Similar to !232

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/285>
2020-04-27 08:03:54 +00:00
Jordan Petridis
ae1b75b51f
windows: switch the image tag to ltsc2019
This should have no functional difference as 1809 is an alias
to ltsc2019 but it makes it more explicit that what branch we
are tracking
2020-04-07 14:45:08 +03:00
Jordan Petridis
23f303eb94 docker/windows: work around a python ssl issue
Python fails to validate github.com SSL certificate, unless we first
run a dummy download to force refreshing Windows' CA database.
See: https://bugs.python.org/issue36137

Adapted from patches by Xavier Claessens!
2020-01-29 17:39:46 +00:00
Jordan Petridis
0320050e06 docker/windows: install cmake with choco as well 2020-01-29 17:39:46 +00:00
Jordan Petridis
6fb7b6744c docker/windows: copy the install scripts just before running them
This results into more docker layers, but it avoid invalidating
the previous layers when changing anything in the script, making
build times faster.

Adapted from patches by Xavier Claessens!
2020-01-29 17:39:46 +00:00
Jordan Petridis
df6ebdeaaf docker/windows: install git, gitlfs, 7zip and python3 with choco
Move them into a seperate script to avoid needing to refresh the
env, and make it simpler.

Adapted from patches by Xavier Claessens!
2020-01-29 17:39:46 +00:00
Jordan Petridis
c0caae0722 docker/windows: use direct download links from mirrors
Else Invoke-WebRequest gets redirected and ends up downloading
html page. Possibly due to an unkown user-agent? who knows.
2020-01-29 17:39:46 +00:00
Nirbheek Chauhan
21df205069 docker/windows: Download and install MSYS for Cerbero 2020-01-29 17:39:46 +00:00
Nirbheek Chauhan
d8e87dc89a docker/windows: Install CMake for Cerbero 2020-01-29 17:39:46 +00:00
Nirbheek Chauhan
6267810f3a docker/windows: Fix 7zip extract command for MSYS2
-Wait is only needed for Start-Process. Also, explicitly extract the
tar file into C:\ -- don't assume the current directory is C:\
2020-01-29 17:39:46 +00:00
Nirbheek Chauhan
cfb15f47b8 docker/windows: Clarify some MSYS2 install steps 2020-01-29 17:39:46 +00:00
Nirbheek Chauhan
1ae8f6491f docker/windows: Update python, git, and MSYS2
The git update is particularly important because of security
vulnerabilities on Windows related to NTFS.
2020-01-29 17:39:46 +00:00
Nirbheek Chauhan
b722709cad docker/windows: Use load-balancing for sourceforge URLs
Instead of using a specific mirror, which may be slow or might
disappear.
2020-01-29 17:39:46 +00:00
Nirbheek Chauhan
cec8de9054 docker/windows: Install Python to a path without spaces
This is needed for Cerbero since Autotools cannot handle paths to
binaries that have spaces in them.
2020-01-29 17:39:46 +00:00
Nirbheek Chauhan
ddf9f8962f docker/windows: Download Python installer as python3-installer
Having a binary called 'python3' anywhere that might accidentally end
up in PATH is asking for trouble.
2020-01-29 17:39:46 +00:00
Jordan Petridis
5c0ad2facd
ci_template: make sure powershell hard exists on errors
We set the env var as the shell of the image, but looks like
the gitlab runner is overriding that.
2019-12-05 00:59:34 +02:00
Jordan Petridis
b3aa9b5286
windows: Migrate to windows 1809 base
Rebuild the windows docker image against the current ltsc [1]
of server 2019. This requires moving some of the msys setup
to the runner job cause it causes docker build to hang

Switch the job tags so they now use the 1809 runner, instead
of 1607.

Tweak the PATHs in the msys job so bash doesn't complain about
slashes..

Lastly, increase the timeout of the windows jobs, as msys2
installs its deps at runtime

[1] https://docs.microsoft.com/en-us/windows-server/get-started-19/servicing-channels-19
2019-12-04 18:45:22 +02:00
Jordan Petridis
2fadd6e3d0 docker/windows: update the version of various deps we install 2019-11-26 17:42:14 +00:00
Jordan Petridis
072cf0122a docker/windows: refactorings to get it to work with the new runner
* Install git-lfs as its required now by gst-integration-suites
* Clone gst-build eache time to avoid dated gst-build checkouts
and overwritting .wrap files. Similar to !137
* Split the dockerfile and add a second run stage refresh the
powershell env inbetween calls
* Remove the msys2 workaround as its not needed anymore
2019-08-16 17:17:01 +00:00
Xavier Claessens
31cec0a245 Add Windows MSVC and MSYS2 builds
This adds 3 new jobs that build against msys2 x86_64, msvc 2017 x86
and msvc 2017 x86_64. For the msvc build, some subprojects (like libnice)
don't satisfy all their deps, and are getting automatically disabled.

This doesn't add jobs that run the test suite also. Will hopefully
get implemented later on.
2019-08-16 17:17:01 +00:00