goldberg_emulator/.gitlab-ci.yml

186 lines
6.6 KiB
YAML
Raw Permalink Normal View History

2019-04-27 21:15:31 +00:00
stages:
- dependencies
- build
- deploy
- page_deploy
2019-04-27 21:15:31 +00:00
protobuf_static_steamos:
stage: dependencies
image: tianon/steamos
script:
# don't rebuild every time
- test -e ./protobuf/prefix && exit 0
- apt update && apt -y install gcc-4.9 g++-4.9 git autotools-dev automake libtool g++-4.9-multilib gcc-4.9-multilib build-essential
- export BASE_PREFIX_PATH=$(pwd)
- echo $BASE_PREFIX_PATH
- mkdir deps
- cd deps
2022-08-17 00:38:16 +00:00
- git clone --branch 21.x https://github.com/protocolbuffers/protobuf.git
2019-04-27 21:15:31 +00:00
- cd protobuf
- sh autogen.sh
- ./configure "CC=gcc-4.9 -m32" "CXX=g++-4.9 -m32" CPPFLAGS="-fPIC -Ofast" CXXFLAGS="-fPIC -Ofast" --prefix=$BASE_PREFIX_PATH/protobuf/prefix_x86/ --disable-shared --enable-static
- make -j8 install
- make clean
- ./configure "CC=gcc-4.9" "CXX=g++-4.9" "CPPFLAGS=-fPIC -Ofast" "CXXFLAGS=-fPIC -Ofast" --prefix=$BASE_PREFIX_PATH/protobuf/prefix/ --disable-shared --enable-static
- make -j8 install
cache:
key: protobuf-static-steamos-cache
# policy: push
paths:
- protobuf/
artifacts:
paths:
- protobuf/
expire_in: 1 day
build_steamos:
stage: build
image: tianon/steamos
dependencies:
- protobuf_static_steamos
before_script:
- apt update && apt -y install gcc-4.9 g++-4.9 git libtool g++-4.9-multilib gcc-4.9-multilib
script:
- ls -lah
- uname -a
- sed -i 's/^g++ /g++-4.9 /g' build_steamos.sh
- sed -i 's/..\/protobuf\/prefix/.\/protobuf\/prefix/g' build_steamos.sh
- sh build_steamos.sh
artifacts:
paths:
- linux/
expire_in: 1 day
2019-05-01 15:38:21 +00:00
build_windows:
stage: build
2022-08-05 10:28:42 +00:00
image: fedora:35
2019-05-01 15:38:21 +00:00
script:
2022-08-16 16:39:38 +00:00
- dnf -y install wine wget p7zip sed dos2unix python
- unix2dos *.txt
- unix2dos files_example/*.txt files_example/*/*.txt
2020-02-15 23:01:34 +00:00
- sed -i 's/..\\vcpkg\\installed\\/.\\protobuf_/g' build_set_protobuf_directories.bat
2019-05-01 15:38:21 +00:00
- wget 'https://gitlab.com/Mr_Goldberg/goldberg_emulator/uploads/48db8f434a193aae872279dc4f5dde6a/sdk_standalone.7z'
- wget 'https://gitlab.com/Mr_Goldberg/goldberg_emulator/uploads/0119304e030098b4821d73170fe52084/protobuf_x64-windows-static.7z'
- wget 'https://gitlab.com/Mr_Goldberg/goldberg_emulator/uploads/4185a97ab363ddc1859127e59ec68581/protobuf_x86-windows-static.7z'
- 7za x protobuf_x86-windows-static.7z -oprotobuf_x86-windows-static
- 7za x protobuf_x64-windows-static.7z -oprotobuf_x64-windows-static
- 7za x sdk_standalone.7z -osdk_standalone
- DLL_FILES="$(ls dll/*.cpp | tr "\n" " ")"; sed "s|dll/\*.cpp|$DLL_FILES|g" -i *.bat
- DLL_FILES="$(ls dll/*.proto | tr "\n" " " | sed "s/.proto/.pb.cc/g")"; sed "s|dll/\*.cc|$DLL_FILES|g" -i *.bat
- sed "s| /MP12 | /MP4 |g" -i *.bat
2022-08-16 16:29:05 +00:00
- python generate_build_win_bat.py
2019-05-03 12:47:40 +00:00
- export WINEDEBUG=-all
2022-08-16 16:29:05 +00:00
- wine cmd /c build_win_release_test.bat
2019-05-01 15:38:21 +00:00
artifacts:
paths:
- release/
expire_in: 1 day
build_cmake_linux:
stage: build
2020-04-29 16:35:47 +00:00
image: ubuntu
2020-10-04 17:15:32 +00:00
when: manual
before_script:
2020-04-29 17:08:09 +00:00
- export DEBIAN_FRONTEND=noninteractive
- apt update -y
- apt install build-essential cmake libprotobuf-dev protobuf-compiler ninja-build -y
script:
- mkdir cmake-builds && cd cmake-builds
- mkdir x64-release && cd x64-release
- cmake ../../ -G "Ninja" -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo" && ninja
- cd ..
# - mkdir x64-experimental-release && cd x64-experimental-release
# - cmake ../../ -G "Ninja" -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo" -DEMU_EXPERIMENTAL_BUILD:BOOL=ON && ninja
# - cd ..
artifacts:
paths:
- cmake-builds/
expire_in: 1 day
build_cmake_windows:
stage: build
image: fedora:29
2020-10-04 17:15:32 +00:00
when: manual
before_script:
2019-12-06 13:11:54 +00:00
- dnf -y install wine wget p7zip sed dos2unix unzip
- wget 'https://gitlab.com/Mr_Goldberg/goldberg_emulator/uploads/48db8f434a193aae872279dc4f5dde6a/sdk_standalone.7z'
- 7za x sdk_standalone.7z -osdk_standalone
- wget 'https://github.com/Kitware/CMake/releases/download/v3.15.0-rc1/cmake-3.15.0-rc1-win64-x64.zip'
- 7za x cmake-3.15.0-rc1-win64-x64.zip
- wget 'https://gitlab.com/Mr_Goldberg/goldberg_emulator/uploads/0119304e030098b4821d73170fe52084/protobuf_x64-windows-static.7z'
- 7za x protobuf_x64-windows-static.7z -oprotobuf_x64-windows-static
script:
- export WINEDEBUG=-all
- wine cmd /c
- mkdir cmake-builds && cd cmake-builds
- mkdir x64-release && cd x64-release
- echo call .\\..\\..\\sdk_standalone\\set_vars64.bat >> cmake-build.bat
- echo .\\..\\..\\cmake-3.15.0-rc1-win64-x64\\bin\\cmake.exe ..\\.. -G \"NMake Makefiles\" -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo" -DCMAKE_PREFIX_PATH="protobuf_x64-windows-static" -DProtobuf_PROTOC_EXECUTABLE:STRING="./../../protobuf_x64-windows-static/tools/protobuf/protoc.exe" >> cmake-build.bat
- echo nmake.exe >> cmake-build.bat
- wine cmd /c cmake-build.bat
- cd ..
- mkdir x64-experimental-release && cd x64-experimental-release
- echo call .\\..\\..\\sdk_standalone\\set_vars64.bat >> cmake-build.bat
- echo .\\..\\..\\cmake-3.15.0-rc1-win64-x64\\bin\\cmake.exe ..\\.. -G \"NMake Makefiles\" -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo" -DEMU_EXPERIMENTAL_BUILD=ON -DEMU_OVERLAY=ON -DCMAKE_PREFIX_PATH="protobuf_x64-windows-static" -DProtobuf_PROTOC_EXECUTABLE:STRING="./../../protobuf_x64-windows-static/tools/protobuf/protoc.exe" >> cmake-build.bat
- echo nmake.exe >> cmake-build.bat
- wine cmd /c cmake-build.bat
- cd ..
artifacts:
paths:
- cmake-builds/
expire_in: 1 day
2019-05-01 15:38:21 +00:00
deploy_all:
stage: deploy
image: fedora
dependencies:
- build_windows
- build_steamos
script:
- ls -lah
- dnf -y install git tree
- mkdir -p release/source_code
- git bundle create release/source_code/source_code.bundle --all
2020-01-15 18:27:15 +00:00
- "echo \"This is a git bundle of the full repo, to use: git clone source_code.bundle --branch master\" > release/source_code/Readme.txt"
2019-05-01 15:38:21 +00:00
- mv linux release/
2019-05-01 16:29:46 +00:00
- shopt -s extglob
- rm -rf .g*
2019-05-01 15:38:21 +00:00
- rm -rf !(release)
- mv release/* ./
- rm -rf release
- echo $CI_JOB_ID > job_id
- tree
2019-05-01 15:38:21 +00:00
artifacts:
name: "Goldberg_Lan_Steam_Emu_$CI_COMMIT_REF_NAME-$CI_COMMIT_TAG-$CI_COMMIT_SHORT_SHA"
2019-05-01 16:29:46 +00:00
paths:
2020-05-17 13:49:51 +00:00
- ./
2021-01-18 04:43:08 +00:00
expire_in: never
2019-05-01 15:38:21 +00:00
pages:
image: fedora
stage: page_deploy
dependencies:
- deploy_all
script:
- DEPLOY_ALL_JOBID=$(cat job_id)
- mkdir public
- cat website/template.html | sed 's|X_LATEST_BUILD_URL_X|https://gitlab.com/Mr_Goldberg/goldberg_emulator/-/jobs/'$DEPLOY_ALL_JOBID'/artifacts/download|g' > public/index.html
2019-05-03 10:43:43 +00:00
- sed -i 's|X_LATEST_BUILD_COMMIT_HASH_X|'$CI_COMMIT_SHA'|g' public/index.html
artifacts:
paths:
- public/
only:
- master