gsplus/.gitlab-ci.yml

322 lines
8.0 KiB
YAML

stages:
- build
- package
- deploy
- updatewebsite
# TARGET SYSTEM: UBUNTU X
build-ubuntu-x:
tags:
- ubuntu
stage: build
script:
- sudo apt-get update -qq && sudo apt-get install -y -qq g++ libpcap0.8-dev libx11-dev libxext-dev re2c cmake
- mkdir build
- cd build
- cmake ..
- make
- make clean ; make
- mv bin/GSplus ../gsplusx
artifacts:
paths:
- gsplusx
expire_in: 10 minutes
only:
- master
package-ubuntu-x:
tags:
- ubuntu
stage: package
script:
- cp src/config.txt .
- 'echo "# CI_BUILD_ID: $CI_BUILD_ID" >> config.txt'
- cp LICENSE.txt doc/
artifacts:
paths:
- gsplusx
- config.txt
- doc/gsplusmanual.pdf
- doc/LICENSE.txt
expire_in: 10 minutes
only:
- master
# TARGET SYSTEM: DEPRECATED, UBUNTU SDL
build-ubuntu-sdl:
tags:
- ubuntu
stage: build
script:
- sudo apt-get update -qq && sudo apt-get install -y -qq g++ libpcap0.8-dev libx11-dev libsdl2-dev libfreetype6-dev libsdl2-image-dev
- cd src
- ln -s vars_x86linux_sdl vars
- make clean ; make
only:
- master
# TARGET SYSTEM: REALLY ANY LINUX, BUT UBUNTU W SDL2
build-ubuntu-sdl2:
tags:
- ubuntu
stage: build
script:
- sudo apt-get update -qq && sudo apt-get install -y -qq g++ libpcap0.8-dev libx11-dev libsdl2-dev libfreetype6-dev libsdl2-image-dev re2c cmake
- mkdir build
- cd build
- cmake ..
- make
- mv bin/GSplus ../gsplus-ubuntu-sdl.bin
artifacts:
paths:
- gsplus-ubuntu-sdl.bin
expire_in: 10 minutes
package-ubuntu-sdl2:
tags:
- ubuntu
stage: package
variables:
GIT_STRATEGY: fetch
PACKAGE_DIR: gsplus-ubuntu-sdl
script:
- mkdir $PACKAGE_DIR
- mkdir $PACKAGE_DIR/doc
- cp gsplus-ubuntu-sdl.bin $PACKAGE_DIR/gsplus
- cp src/config.txt $PACKAGE_DIR
- 'echo "# CI_BUILD_ID: $CI_BUILD_ID" >> $PACKAGE_DIR/config.txt'
- cp src/parallel.rom %PACKAGE_DIR%
- cp LICENSE.txt $PACKAGE_DIR/doc/
- cp doc/gsplusmanual.pdf %PACKAGE_DIR%
- cp doc/README.txt %PACKAGE_DIR%
- tar -cvjf gsplus-ubuntu-sdl.tar.bz2 $PACKAGE_DIR
artifacts:
paths:
- gsplus-ubuntu-sdl.tar.bz2
expire_in: 10 minutes
package-ubuntu-sdl2-deb:
tags:
- ubuntu
stage: package
variables:
GIT_STRATEGY: fetch
PACKAGE_NAME: gsplus_$CI_VERSION-0
script:
- mkdir -p $PACKAGE_NAME/usr/local/bin
- mkdir -p $PACKAGE_NAME/DEBIAN
- cp gsplus-ubuntu-sdl.bin $PACKAGE_NAME/usr/local/bin/gsplus
- cp assets/control $PACKAGE_NAME/DEBIAN
- dpkg-deb --build $PACKAGE_NAME
artifacts:
paths:
- $PACKAGE_NAME.deb
expire_in: 10 minutes
deploy-ubuntu:
tags:
- ubuntu
stage: deploy
variables:
GIT_STRATEGY: none
PACKAGE_NAME: gsplus_$CI_VERSION-0
script:
- aws s3 cp gsplus-ubuntu-sdl.tar.bz2 s3://$AWS_BUCKET/$CI_TAG/$CI_VERSION/$CI_PIPELINE_ID/ubuntu-sdl/$CI_BUILD_ID/ --acl public-read
- aws s3 cp $PACKAGE_NAME.deb s3://$AWS_BUCKET/$CI_TAG/$CI_VERSION/$CI_PIPELINE_ID/ubuntu-sdl-deb/$CI_BUILD_ID/ --acl public-read
# TARGET SYSTEM: OSX 10.SOMETHING
build-osx:
tags:
- osx
stage: build
script:
- mkdir build
- cd build
- cmake ..
- make
- make clean ; make
- mv bin/GSplus.app/Contents/MacOS/GSplus ../gsplus-osx
artifacts:
paths:
- gsplus-osx
expire_in: 15 minutes
package-osx:
tags:
- osx
stage: package
script:
- mv gsplus-osx gsplus
- cp src/config.txt .
- 'echo "# CI_BUILD_ID: $CI_BUILD_ID" >> config.txt'
- chmod +x make_dist_mac.sh
- ./make_dist_mac.sh
- chmod +x make_dmg_mac.sh
- ./make_dmg_mac.sh
artifacts:
paths:
- GSplus-Install.dmg
expire_in: 10 minutes
deploy-osx:
tags:
- osx
stage: deploy
variables:
GIT_STRATEGY: none
script:
- aws s3 cp GSplus-Install.dmg s3://$AWS_BUCKET/$CI_TAG/$CI_VERSION/$CI_PIPELINE_ID/osx/$CI_BUILD_ID/ --acl public-read
# TARGET SYSTEM: WIN32 GDI WIN API UNDER MSYS2
build-win32-gdi:
tags:
- windows,msys
stage: build
script:
- ls
- mkdir build
- cd build
- cmake ../ -DDRIVER=WIN32 -DWITH_DEBUGGER=OFF -DWITH_STATIC=ON -G "Unix Makefiles"
- make VERBOSE=1 GSplus
- mv bin/GSplus.exe ../GSplus-win32-gdi.exe
artifacts:
paths:
- GSplus-win32-gdi.exe
expire_in: 10 minutes
only:
- master
- /^win.*/
- /^ks.*/
package-win32-gdi:
tags:
- windows,msys
variables:
GIT_STRATEGY: fetch
PACKAGE_DIR: gsplus-win32-gdi
stage: package
script:
- ls
- mkdir %PACKAGE_DIR%
- cp src/config.txt %PACKAGE_DIR%
- 'echo "# CI_BUILD_ID: $CI_BUILD_ID" >> %PACKAGE_DIR%/config.txt'
- cp LICENSE.txt doc/
- cp GSplus-win32-gdi.exe %PACKAGE_DIR%/GSplus.exe
- cp LICENSE.txt %PACKAGE_DIR%
- cp src/config.txt %PACKAGE_DIR%
- cp src/parallel.rom %PACKAGE_DIR%
- cp doc/gsplusmanual.pdf %PACKAGE_DIR%
- cp doc/README.txt %PACKAGE_DIR%
- cp /mingw32/bin/libgcc_s_dw2-1.dll %PACKAGE_DIR%
- cp /mingw32/bin/libstdc++-6.dll %PACKAGE_DIR%
- cp /mingw32/bin/libwinpthread-1.dll %PACKAGE_DIR%
- zip gsplus-win32-gdi.zip -r %PACKAGE_DIR%
artifacts:
paths:
- gsplus-win32-gdi.zip
expire_in: 10 minutes
only:
- master
- /^win.*/
- /^ks.*/
deploy-win32-gdi:
tags:
- osx
stage: deploy
variables:
GIT_STRATEGY: none
script:
- aws s3 cp gsplus-win32-gdi.zip s3://$AWS_BUCKET/$CI_TAG/$CI_VERSION/$CI_PIPELINE_ID/win32/$CI_BUILD_ID/ --acl public-read
only:
- master
- /^win.*/
- /^ks.*/
# TARGET SYSTEM: MSYS2 MINGW32 SDL2
build-win32-sdl2:
tags:
- windows
stage: build
script:
- mkdir build
- cd build
- bash -l -c 'PATH=/mingw32/bin:$PATH ; MSYSTEM=MINGW32 MSYSTEM_PREFIX=/mingw32 /mingw32/bin/cmake ../ -DDRIVER=SDL2 -DWITH_DEBUGGER=OFF -DWITH_STATIC=ON -G "MSYS Makefiles"'
- bash -l -c 'PATH=/mingw32/bin:$PATH ;MSYSTEM=MINGW32 MSYSTEM_PREFIX=/mingw32 /mingw32/bin/mingw32-make VERBOSE=1 GSplus'
- mv bin/GSplus.exe ../GSplus-win32-sdl.exe
artifacts:
paths:
- GSplus-win32-sdl.exe
expire_in: 10 minutes
only:
- master
- /^win.*/
- /^ks.*/
package-win32-sdl2:
tags:
- windows
stage: package
variables:
GIT_STRATEGY: fetch
PACKAGE_DIR: gsplus-win32-sdl
script:
- ls
- mkdir %PACKAGE_DIR%
- cp GSplus-win32-sdl.exe %PACKAGE_DIR%/GSplus.exe
- cp LICENSE.txt %PACKAGE_DIR%
- cp src/config.txt %PACKAGE_DIR%
- cp src/parallel.rom %PACKAGE_DIR%
- cp doc/gsplusmanual.pdf %PACKAGE_DIR%
- cp doc/README.txt %PACKAGE_DIR%
- cp /mingw32/bin/libbz2-1.dll %PACKAGE_DIR%
- cp /mingw32/bin/libfreetype-6.dll %PACKAGE_DIR%
- cp /mingw32/bin/libgcc_s_dw2-1.dll %PACKAGE_DIR%
- cp /mingw32/bin/libglib-2.0-0.dll %PACKAGE_DIR%
- cp /mingw32/bin/libgraphite2.dll %PACKAGE_DIR%
- cp /mingw32/bin/libharfbuzz-0.dll %PACKAGE_DIR%
- cp /mingw32/bin/libiconv-2.dll %PACKAGE_DIR%
- cp /mingw32/bin/libintl-8.dll %PACKAGE_DIR%
- cp /mingw32/bin/libpcre-1.dll %PACKAGE_DIR%
- cp /mingw32/bin/libpng16-16.dll %PACKAGE_DIR%
- cp /mingw32/bin/libstdc++-6.dll %PACKAGE_DIR%
- cp /mingw32/bin/libwinpthread-1.dll %PACKAGE_DIR%
- cp /mingw32/bin/SDL2.dll %PACKAGE_DIR%
- cp /mingw32/bin/SDL2_image.dll %PACKAGE_DIR%
- cp /mingw32/bin/zlib1.dll %PACKAGE_DIR%
- zip gsplus-win32-sdl.zip -r %PACKAGE_DIR%
artifacts:
paths:
- gsplus-win32-sdl.zip
expire_in: 10 minutes
deploy-win32-sdl2:
tags:
- osx
stage: deploy
variables:
GIT_STRATEGY: none
script:
- aws s3 cp gsplus-win32-sdl.zip s3://$AWS_BUCKET/$CI_TAG/$CI_VERSION/$CI_PIPELINE_ID/win-sdl/$CI_BUILD_ID/ --acl public-read
update-website-universal:
tags:
- osx
stage: updatewebsite
variables:
GIT_STRATEGY: none
script:
- aws s3 ls gsplus-artifacts/ --recursive > s3artifacts.txt
- php assets/updatewebsite.php s3artifacts.txt public > index.html
- php assets/updatewebsite.php s3artifacts.txt auto > index_auto.html
- aws s3 cp index.html s3://$AWS_BUCKET/ --acl public-read