stages: - setup - build 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 || true # Prevent script exit on failure artifacts: paths: - vcpkg - vcpkg/buildtrees/glew/*.log # 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