39 lines
1.2 KiB
YAML
39 lines
1.2 KiB
YAML
stages:
|
|
- setup
|
|
- build
|
|
|
|
# Setup stage to prepare the environment and vcpkg
|
|
setup:
|
|
stage: setup
|
|
image: alpine:latest
|
|
script:
|
|
- echo "Installing dependencies..."
|
|
- apk update && apk add --no-cache curl zip unzip tar git cmake make gcc g++ bash ninja
|
|
- echo "Cloning and setting up vcpkg..."
|
|
- git clone https://github.com/microsoft/vcpkg.git
|
|
- cd vcpkg
|
|
- export VCPKG_FORCE_SYSTEM_BINARIES=1
|
|
- ./bootstrap-vcpkg.sh
|
|
- ./vcpkg install glew:x64-linux glfw3:x64-linux
|
|
artifacts:
|
|
paths:
|
|
- vcpkg/ # Save the entire vcpkg directory as an artifact
|
|
|
|
# Build stage to compile the project
|
|
build:
|
|
stage: build
|
|
image: alpine:latest
|
|
script:
|
|
- echo "Building the application..."
|
|
- apk add --no-cache cmake make gcc g++ ninja
|
|
- export PATH=$PATH:/usr/bin
|
|
- ls -la # List the contents to check if the vcpkg directory is present
|
|
- cd vcpkg # Ensure we can access the vcpkg directory
|
|
- cd ..
|
|
- mkdir -p build
|
|
- cd build
|
|
- cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE=$CI_PROJECT_DIR/vcpkg/scripts/buildsystems/vcpkg.cmake
|
|
- ninja
|
|
dependencies:
|
|
- setup # Ensure this job depends on the setup stage and uses its artifacts
|