xmpp-rs/.gitlab-ci.yml
Jonas Schäfer 33c8f07a6e Disable bot comment for now
It is broken because of an expired token and the fix doesn't seem to be
trivial, so we disable it for now so that the pipelines become green
again.

skip-changelog, this is not a code change.
2025-01-26 12:59:42 +01:00

117 lines
3.2 KiB
YAML

---
stages:
- lint
- test
- bot
variables:
DOCS_BASEURL: "https://docs.xmpp.rs"
FEATURES: ""
RUST_BACKTRACE: "full"
RUSTFLAGS: " -D warnings"
RUSTDOCFLAGS: " -D warnings"
.show-version:
before_script:
- apt-get update; apt-get install -y --no-install-recommends pkg-config libssl-dev
- rustc --version
- cargo --version
.stable:
image: rust:slim
extends:
- .show-version
.nightly:
image: rustlang/rust:nightly-slim
extends:
- .show-version
.test:
stage: test
script:
- cargo test --verbose
- cargo test --verbose --no-default-features
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
- if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_REF_NAME == 'main'
.docs:
stage: test
script:
- echo "Building docs to CI_DOC_TARGET=$CI_DOC_TARGET"
- RUSTDOCFLAGS="--cfg docsrs -D warnings" RUSTFLAGS="--cfg xmpprs_doc_build" cargo +nightly doc --no-deps -Zrustdoc-map --all-features
- apt install -y rsync openssh-client
- mkdir -p $HOME/.ssh
- echo -e "Host docs\n\tHostname docs.xmpp.rs\n\tPort 1312\n\tUser xmpp-rs\n\tStrictHostKeyChecking no" > $HOME/.ssh/config
- echo "$SECRET_DOCS_SSH_PRIVATE" > $HOME/.ssh/id_ed25519
- chmod 400 $HOME/.ssh/id_ed25519
- rsync -av target/doc/ docs:$CI_DOC_TARGET
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
variables:
CI_DOC_TARGET: "$CI_MERGE_REQUEST_IID"
- if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_REF_NAME == 'main'
variables:
CI_DOC_TARGET: "main"
rustfmt:
stage: lint
script:
- rustup component add rustfmt
- cargo fmt --version
- cargo fmt --check
extends:
- .stable
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
- if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_REF_NAME == 'main'
changelog-update:
stage: lint
image: alpine:latest
# Check in the commit message for "skip.?changelog", if not present
# then check for changes in changelogs.
# XXX: It looks like $CI_COMMIT_MESSAGE mangles newlines so it's not
# possible to require the "skip.?changelog" string to be on its own line,
# that means it would also trigger within a wall of text. Not so obvious.
# TODO: Check the whole MR for updates in changelogs, not just the last
# commit.
script:
- apk add --no-cache python3 git
- python3 --version
- git version
- git log --oneline "${CI_MERGE_REQUEST_DIFF_BASE_SHA}.." --
- python3 .forgejo/workflows/check-changelog.py
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
- if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_REF_NAME == 'main'
stable-test:
extends:
- .test
- .stable
nightly-test:
# It's not often, but it happens nightly breaks, surprisingly.
allow_failure: true
extends:
- .test
- .nightly
docs:
extends:
- .docs
- .nightly
#bot-comment:
# stage: bot
# image: alpine:latest
# script:
# - apk add --no-cache glab
# - glab mr --repo "$CI_MERGE_REQUEST_PROJECT_PATH" comment $CI_MERGE_REQUEST_IID --unique --message "Thanks for your MR! You can preview the docs [here]($DOCS_BASEURL/$CI_MERGE_REQUEST_IID/)."
# rules:
# - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
# variables:
# GITLAB_TOKEN: $MR_AUTOMATION_TOKEN