# Woodpecker CI Pipeline # Equivalent to .github/workflows/ci.yml when: event: [push, pull_request, manual] branch: - main - develop steps: # === LINTING === lint-rust: image: rust:latest commands: - curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin - rustup component add clippy - just dev::lint-rust lint-bash: image: koalaman/shellcheck-alpine:stable commands: - apk add --no-cache curl bash - curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin - just dev::lint-bash lint-nickel: image: rust:latest commands: - curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin - cargo install nickel-lang-cli - just dev::lint-nickel lint-nushell: image: rust:latest commands: - curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin - cargo install nu - just dev::lint-nushell lint-markdown: image: node:alpine commands: - apk add --no-cache curl bash - curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin - npm install -g markdownlint-cli2 - just dev::lint-markdown # === TESTING === test: image: rust:latest commands: - curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin - just ci::test-all depends_on: - lint-rust - lint-bash - lint-nickel - lint-nushell - lint-markdown # === BUILD === build: image: rust:latest commands: - curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin - just ci::build-release depends_on: - test # === SECURITY === security-audit: image: rust:latest commands: - cargo install cargo-audit --locked - cargo audit depends_on: - lint-rust license-check: image: rust:latest commands: - cargo install cargo-deny --locked - cargo deny check licenses depends_on: - lint-rust