Files
space_game/.drone.yml
2026-01-29 17:06:34 +01:00

135 lines
3.2 KiB
YAML

---
kind: pipeline
type: docker
name: default
steps:
- name: build_image_base
pull: never
image: bash_n_docker
volumes:
- name: dockersock
path: /var/run/docker.sock
- name: docker_config
path: /docker_config/config.json
commands:
- export DOCKER_CONFIG=/docker_config
- docker build -f docker/Dockerfile_Base -t spacegame_base .
- name: build_image_linux
pull: never
image: bash_n_docker
depends_on:
- build_image_base
volumes:
- name: dockersock
path: /var/run/docker.sock
- name: docker_config
path: /docker_config/config.json
commands:
- export DOCKER_CONFIG=/docker_config
- docker build -f docker/Dockerfile_Linux -t spacegame_linux .
- name: build_image_windows
pull: never
image: bash_n_docker
depends_on:
- build_image_base
volumes:
- name: dockersock
path: /var/run/docker.sock
- name: docker_config
path: /docker_config/config.json
commands:
- export DOCKER_CONFIG=/docker_config
- docker build -f docker/Dockerfile_Windows -t spacegame_windows .
- name: build_game_linux
pull: never
image: spacegame_linux
depends_on:
- build_image_linux
commands:
- >
cmake -S . -B build_linux -G Ninja
-DCMAKE_TOOLCHAIN_FILE="cmake/clang_toolchain.cmake"
-DCMAKE_BUILD_TYPE=Release
-DSPACEGAME_BUILD_SHADERS=ON
- cmake --build build_linux --verbose -- -l $(($(nproc)+4))
- name: build_game_windows
pull: never
image: spacegame_windows
depends_on:
- build_image_windows
commands:
- >
cmake -S . -B build_windows -G Ninja
-DCMAKE_TOOLCHAIN_FILE="cmake/clang_mingw_toolchain.cmake"
-DCMAKE_BUILD_TYPE=Release
-DSPACEGAME_BUILD_SHADERS=OFF
- cmake --build build_windows --verbose -- -l $(($(nproc)+4))
- name: package_game
pull: never
image: spacegame_linux
depends_on:
- build_game_linux
- build_game_windows
when:
event:
- tag
commands:
# We need to fetch the release tag in order to get its message
- git fetch origin tag $DRONE_TAG --no-tags
# Get short version from tag name and long version from tag message
# - VERSION_SHORT=$DRONE_TAG
- VERSION_LONG=$(git for-each-ref refs/tags/$DRONE_TAG --format='%(contents)')
# Package linux
- LINUX_VERSION="$VERSION_LONG.linux"
- mkdir spacegame_linux
- echo $LINUX_VERSION > spacegame_linux/version.txt
- cp build_linux/bin/x86_64/Release/spacegame spacegame_linux/spacegame
- cp -r assets spacegame_linux/assets
- zip -r spacegame_linux.zip spacegame_linux
# Package windows
- WINDOWS_VERSION="$VERSION_LONG.windows"
- mkdir spacegame_windows
- echo $WINDOWS_VERSION > spacegame_windows/version.txt
- cp build_windows/bin/x86_64/Release/spacegame.exe spacegame_windows/spacegame.exe
- cp -r assets spacegame_windows/assets
- zip -r spacegame_windows.zip spacegame_windows
- name: release
image: plugins/gitea-release
depends_on:
- package_game
when:
event:
- tag
settings:
api_key:
from_secret: api_key
base_url: https://git.lph.zone
prerelease: true
files:
- spacegame_linux.zip
- spacegame_windows.zip
volumes:
- name: dockersock
host:
path: /var/run/docker.sock
- name: docker_config
host:
path: /home/crydsch/.docker/config.json
image_pull_secrets:
- dockerconfig