image: "r.lcr.gr/microhacks/bevy-builder:latest" variables: BINARY_NAME: game .cache_directive: &cache_directive before_script: - export CARGO_HOME="${CI_PROJECT_DIR}/.cargo" - export PATH="${CI_PROJECT_DIR}/.cargo/bin:$PATH" cache: key: build-cache-key paths: - .cargo/registry/cache - .cargo/registry/index - .cargo/git/db - .cargo/bin/ - target/ stages: - build - package build-windows: stage: build <<: *cache_directive script: - cargo build --release -p game_core --target x86_64-pc-windows-gnu only: - trunk build-linux: stage: build <<: *cache_directive script: - cargo build --release -p game_core --target x86_64-unknown-linux-gnu only: - trunk build-web: stage: build <<: *cache_directive script: - cargo build --release -p game_core --target x86_64-unknown-linux-gnu only: - trunk package-all: stage: package <<: *cache_directive script: - mkdir -p dist/ - cp -r assets dist/assets - cp target/x86_64-unknown-linux-gnu/release/game_core "dist/$BINARY_NAME" - cp target/x86_64-pc-windows-gnu/release/game_core.exe "dist/$BINARY_NAME.exe" - cd "${CI_PROJECT_DIR}/dist && zip -r "windows.zip" "./${BINARY_NAME}.exe" ./assets - cd "${CI_PROJECT_DIR}/dist && zip -r "linux.zip" "./${BINARY_NAME}" ./assets - cd "${CI_PROJECT_DIR}/game_core/dist && zip -r "../../dist/web.zip" "./*" artifacts: paths: - dist/web.zip - dist/windows.zip - dist/linux.zip only: - trunk pages: stage: package script: - mkdir -p public/ - cp -r game_core/dist/* public/ artifacts: paths: - public only: - trunk