redox/.gitlab-ci.yml
2026-02-09 04:42:46 +07:00

84 lines
2.0 KiB
YAML

# The GitLab Continuous Integration configuration
variables:
GIT_STRATEGY: "clone"
stages:
- lint
- test
workflow:
rules:
- if: '$CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "redox-os"'
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"'
fmt:
image: "rust:trixie"
stage: lint
script:
- rustup component add rustfmt
- cargo fmt -- --check
cargo-test:
image: "rust:trixie"
stage: lint
script:
# TODO: we should omit fuse from cargo install chains
- apt update && apt install -y fuse3 libfuse3-dev
- cargo test --locked
img:
image: "ubuntu:24.04"
stage: test
before_script:
# Disable the wget progress bar
- echo 'show-progress = off' >> ~/.wgetrc
- |
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq &&
apt-get install -qq \
bison \
build-essential \
curl \
flex \
fuse3 \
git \
libfuse-dev \
nasm \
pkg-config \
texinfo \
wget \
help2man \
autoconf \
automake \
zstd
script:
- |
export PATH="$HOME/.cargo/bin:$PATH" &&
bash podman/rustinstall.sh &&
PODMAN_BUILD=0 REPO_BINARY=1 FSTOOLS_NO_MOUNT=1 COOKBOOK_VERBOSE=false make ci-img IMG_TAG=$CI_COMMIT_REF_NAME
pkg:
image: "ubuntu:24.04"
stage: test
before_script:
# Disable the wget progress bar
- echo 'show-progress = off' >> ~/.wgetrc
- |
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq &&
apt-get install -qq \
build-essential \
curl \
git \
nasm \
wget
script:
- |
export PATH="$HOME/.cargo/bin:$PATH" PODMAN_BUILD=0 &&
bash podman/rustinstall.sh &&
make CONFIG_NAME=ci repo-tree ARCH=x86_64 &&
make CONFIG_NAME=ci repo-tree ARCH=i586 &&
make CONFIG_NAME=ci repo-tree ARCH=aarch64 &&
make CONFIG_NAME=ci repo-tree ARCH=riscv64gc