--- stages: - lint - test - docs - bot variables: DOCS_BASEURL: "https://xmpp-rs.gitlab.io/xmpp-rs/" FEATURES: "" RUST_BACKTRACE: "full" cache: # Required to keep docs artifacts from old builds paths: - public .show-version: before_script: - apt-get update; apt-get install -y --no-install-recommends pkg-config libssl-dev libicu-dev - rustc --version - cargo --version .stable: image: rust:slim extends: - .show-version .nightly: image: rustlang/rust:nightly-slim # It's not often, but it happens nightly breaks, surprisingly. allow_failure: true extends: - .show-version .test: stage: test script: - cargo test --verbose --release -- --include-ignored - cargo test --verbose --no-default-features variables: RUSTFLAGS: " -D warnings" rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_REF_NAME == 'main' .docs: stage: docs script: - echo "Building docs to CI_DOC_TARGET=$CI_DOC_TARGET" - cargo doc - rm -rf "$CI_DOC_TARGET" - mkdir -p "$(dirname "$CI_DOC_TARGET")" - mv target/doc "$CI_DOC_TARGET" - echo "jid
minidom
sasl
tokio_xmpp
xmpp
xmpp_parsers" > "$CI_DOC_TARGET"/index.html artifacts: name: "$CI_DOC_TARGET" paths: - public rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' variables: CI_DOC_TARGET: "public/$CI_MERGE_REQUEST_IID" - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_REF_NAME == 'main' variables: CI_DOC_TARGET: "public/main" rustfmt: stage: lint script: - rustup component add rustfmt - cargo fmt --check extends: - .stable 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: extends: - .test - .nightly pages: extends: - .docs - .stable 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