builds/checkin/edgelet.yaml (154 lines of code) (raw):

trigger: none pr: branches: include: - main - release/* jobs: ################################################################################ - job: check_run_pipeline ################################################################################ displayName: Check pipeline preconditions (changes ARE in builds or edgelet) pool: name: $(pool.linux.name) demands: - ImageOverride -equals agent-aziotedge-ubuntu-22.04-msmoby steps: - bash: | git log -m -1 --name-only --first-parent --pretty="" | egrep -i '^(rust-toolchain\.toml|builds|edgelet)' if [[ $? == 0 ]]; then echo "Detected changes inside builds or edgelet folders" echo "##vso[task.setvariable variable=RUN_PIPELINE;isOutput=true]TRUE" fi displayName: Check changes in sources name: check_files ################################################################################ - job: linux_amd64 ################################################################################ displayName: Linux amd64 dependsOn: check_run_pipeline condition: eq(dependencies.check_run_pipeline.outputs['check_files.RUN_PIPELINE'], 'true') pool: name: $(pool.linux.name) demands: - ImageOverride -equals agent-aziotedge-ubuntu-22.04-msmoby steps: - script: echo "##vso[task.setvariable variable=NO_VALGRIND;]true" displayName: Set env variables - bash: scripts/linux/generic-rust/install.sh --project-root "edgelet" displayName: Install Rust - script: | source $HOME/.cargo/env cd edgelet make \ CONNECT_MANAGEMENT_URI=unix:///var/run/iotedge/mgmt.sock \ CONNECT_WORKLOAD_URI=unix:///var/run/iotedge/workload.sock \ LISTEN_MANAGEMENT_URI=fd://aziot-edged.mgmt.socket \ LISTEN_WORKLOAD_URI=fd://aziot-edged.workload.socket \ release displayName: build - bash: edgelet/build/linux/test.sh displayName: Test ################################################################################ - job: linux_arm32v7 ################################################################################ displayName: Linux arm32v7 dependsOn: check_run_pipeline condition: eq(dependencies.check_run_pipeline.outputs['check_files.RUN_PIPELINE'], 'true') pool: name: $(pool.linux.name) demands: - ImageOverride -equals agent-aziotedge-ubuntu-22.04-msmoby variables: IOTEDGE_HOMEDIR: /tmp steps: - bash: 'echo "##vso[task.setvariable variable=PATH;]${CARGO_HOME:-"$HOME/.cargo"}/bin:$PATH"' displayName: Modify path - bash: | BASE_VERSION=`cat $BUILD_SOURCESDIRECTORY/edgelet/version.txt` VERSION="$BASE_VERSION$BUILD_BUILDNUMBER" echo "##vso[task.setvariable variable=VERSION;]$VERSION" displayName: Set Version - bash: scripts/linux/generic-rust/install.sh --project-root "edgelet" displayName: Install Rust - script: "cargo install cross --version ^0.2 --locked" displayName: "Install cross" - script: "cross build --target armv7-unknown-linux-gnueabihf" displayName: armv7-unknown-linux-gnueabihf build workingDirectory: $(Build.SourcesDirectory)/edgelet - script: "cross test --target armv7-unknown-linux-gnueabihf" displayName: armv7-unknown-linux-gnueabihf test workingDirectory: $(Build.SourcesDirectory)/edgelet ################################################################################ - job: linux_arm64v8 ################################################################################ displayName: Linux arm64v8 dependsOn: check_run_pipeline condition: eq(dependencies.check_run_pipeline.outputs['check_files.RUN_PIPELINE'], 'true') pool: name: $(pool.linux.name) demands: - ImageOverride -equals agent-aziotedge-ubuntu-22.04-msmoby variables: IOTEDGE_HOMEDIR: /tmp steps: - bash: 'echo "##vso[task.setvariable variable=PATH;]$HOME/.cargo/bin:$PATH"' displayName: Modify path - bash: | BASE_VERSION=`cat $BUILD_SOURCESDIRECTORY/edgelet/version.txt` VERSION="$BASE_VERSION$BUILD_BUILDNUMBER" echo "##vso[task.setvariable variable=VERSION;]$VERSION" displayName: Set Version - bash: scripts/linux/generic-rust/install.sh --project-root "edgelet" displayName: Install Rust - script: "cargo install cross --version ^0.2 --locked" displayName: "Install cross" - script: "cross build --target aarch64-unknown-linux-gnu" displayName: aarch64-unknown-linux-gnu build workingDirectory: $(Build.SourcesDirectory)/edgelet - script: "cross test --target aarch64-unknown-linux-gnu" displayName: aarch64-unknown-linux-gnu test workingDirectory: $(Build.SourcesDirectory)/edgelet ################################################################################ - job: style_check ################################################################################ displayName: Style Check dependsOn: check_run_pipeline condition: eq(dependencies.check_run_pipeline.outputs['check_files.RUN_PIPELINE'], 'true') pool: name: $(pool.linux.name) demands: - ImageOverride -equals agent-aziotedge-ubuntu-22.04-msmoby steps: - script: echo "##vso[task.setvariable variable=NO_VALGRIND;]true" displayName: Set env variables - bash: scripts/linux/generic-rust/install.sh --project-root "edgelet" displayName: Install Rust - bash: scripts/linux/generic-rust/format.sh --project-root "edgelet" displayName: Format Code - bash: edgelet/build/linux/clippy.sh displayName: Clippy ################################################################################ - job: code_coverage ################################################################################ displayName: Code Coverage dependsOn: check_run_pipeline condition: eq(dependencies.check_run_pipeline.outputs['check_files.RUN_PIPELINE'], 'true') variables: coverage.goal: 30 pool: name: $(pool.linux.name) demands: - ImageOverride -equals agent-aziotedge-ubuntu-22.04-msmoby steps: - script: scripts/linux/generic-rust/install.sh --project-root "edgelet" displayName: Install Rust - script: | . "$HOME/.cargo/env" cargo install --locked --version 0.26.1 cargo-tarpaulin workingDirectory: edgelet displayName: Install Cargo Tarpaulin - script: | . "$HOME/.cargo/env" cargo tarpaulin --out Xml --output-dir . displayName: Test workingDirectory: edgelet - task: PublishCodeCoverageResults@2 displayName: Publish code coverage results inputs: summaryFileLocation: "edgelet/cobertura.xml" - task: BuildQualityChecks@9 displayName: "Check build quality" inputs: checkCoverage: true coverageFailOption: fixed coverageType: lines coverageThreshold: $(coverage.goal)