Files
srab/.gitlab-ci.yml
2025-11-26 21:32:41 +03:00

115 lines
2.8 KiB
YAML

image: ubuntu:25.10
stages:
- build
- test
- deploy
build:
stage: build
variables:
DEBIAN_FRONTEND: noninteractive
LANG: C.UTF-8
LC_ALL: C.UTF-8
cache:
key: "build-$CI_COMMIT_REF_SLUG"
paths:
- build/
policy: pull-push
before_script:
- apt-get update
- apt-get install -y --no-install-recommends clang build-essential sqlite3 libsqlite3-dev wget ca-certificates
- update-ca-certificates || true
- wget https://lab.voldemort.tech/api/v4/projects/lambda%2Fcarga/packages/generic/carga/v0.0.1/carga -O /usr/local/bin/carga
- chmod +x /usr/local/bin/carga
script:
- I_AM_SCARED_PLEASE_TALK_TO_ME=true carga собери
artifacts:
name: "target-$CI_COMMIT_REF_SLUG"
paths:
- build/target.exe
build_wrapper:
stage: build
image: rust:1.90-bookworm
variables:
CARGO_HOME: "$CI_PROJECT_DIR/.cargo"
cache:
key: "cargo-$CI_COMMIT_REF_SLUG"
paths:
- .cargo/registry
- .cargo/git
- wrapper/target
policy: pull-push
script:
- cd wrapper
- cargo build --release
artifacts:
name: "wrapper-$CI_COMMIT_REF_SLUG"
paths:
- wrapper/target/release/wrapper
test:
stage: test
dependencies:
- build
- build_wrapper
variables:
DEBIAN_FRONTEND: noninteractive
LANG: C.UTF-8
LC_ALL: C.UTF-8
before_script:
- apt-get update
- apt-get install -y --no-install-recommends python3 python3-pip
- python3 -m pip install --break-system-packages requests
script:
- export SERVER_PATH="$(pwd)/wrapper/target/release/wrapper"
- export BIN_PATH="$(pwd)/build/target.exe"
- python3 ./autotest/main.py -s
pages:
stage: deploy
image: node:20
script:
- npm init -y
- npm install swagger-ui-dist
- mkdir -p public
- cp -r node_modules/swagger-ui-dist/* public/
- cp ./openapi/srab.yaml public/
- |
cat > public/index.html <<'EOF'
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SRAB API Documentation</title>
<link rel="stylesheet" href="./swagger-ui.css">
<script src="./swagger-ui-bundle.js" crossorigin></script>
<script src="./swagger-ui-standalone-preset.js" crossorigin></script>
</head>
<body>
<div id="swagger-ui"></div>
<script>
window.onload = () => {
window.ui = SwaggerUIBundle({
url: "./srab.yaml",
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
layout: "BaseLayout"
});
};
</script>
</body>
</html>
EOF
artifacts:
paths:
- public
only:
refs:
- master
changes:
- openapi/**/*
- .gitlab-ci.yml