104 lines
2.5 KiB
YAML
104 lines
2.5 KiB
YAML
---
|
|
|
|
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 "<a href='jid'>jid</a><br><a href='minidom'>minidom</a><br><a href='sasl'>sasl</a><br><a href='tokio_xmpp'>tokio_xmpp</a><br><a href='xmpp'>xmpp</a><br><a href='xmpp_parsers'>xmpp_parsers</a>" > "$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_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
|