jobs: # Check formatting - template: ci/rustfmt.yml parameters: name: rustfmt displayName: Check formatting # Run linter - template: ci/cargo-clippy.yml parameters: name: cargo_clippy displayName: Run linter # Cargo check - template: ci/cargo-check.yml parameters: name: cargo_check displayName: Cargo check ############## # Test stage # ############## # Test stable - template: ci/test.yml parameters: dependsOn: - cargo_check name: cargo_test_stable displayName: Cargo test cross: true # Test on Windows and macOS # Test nightly - template: ci/test.yml parameters: name: cargo_test_nightly displayName: Cargo test rust_version: nightly # Test docker # Runs integration tests as a starship developer would run them locally - template: ci/test-docker.yml parameters: name: test_docker displayName: Docker test ################ # Release stage # ################ # Release binary - template: ci/github-release.yml parameters: name: github_release dependsOn: - rustfmt - cargo_check - cargo_clippy - cargo_test_stable - test_docker rust_version: stable condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) contents: | * !*.rlib !*.d !.* targets: - x86_64-unknown-linux-gnu # Windows support temporarily disabled # - x86_64-pc-windows-gnu # - x86_64-pc-windows-msvc - x86_64-apple-darwin github: gitHubConnection: StarshipRelease repositoryName: starship/starship isPreRelease: true