init here
This commit is contained in:
114
.gitlab-ci.yml
Normal file
114
.gitlab-ci.yml
Normal file
@@ -0,0 +1,114 @@
|
||||
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
|
||||
Reference in New Issue
Block a user