diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index b1e91dab..b37a0bcb 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -12,6 +12,7 @@ jobs: os: [ubuntu-latest, macos-latest, windows-latest] rust: [stable, beta, 1.56] features: [--all-features, ""] + target: [""] exclude: - os: ubuntu-latest rust: beta @@ -56,28 +57,48 @@ jobs: - os: ubuntu-latest rust: 1.56 features: --features improved_unicode + - os: ubuntu-latest + rust: stable + features: --all-features + target: --target armv5te-unknown-linux-gnueabi + use-cross: true runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 + - uses: actions/github-script@v6 + id: rust-target + with: + script: | + const target = '${{ matrix.target }}' + if (target) { + const rustTarget = target.slice('--target'.length).trim() + core.setOutput('rust-target', rustTarget) + } else { + core.setOutput('rust-target', '') + } - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.rust }} + target: ${{ steps.rust-target.outputs.rust-target }} override: true - uses: actions-rs/cargo@v1 with: + use-cross: ${{ matrix.use-cross }} command: build - args: --workspace --all-targets + args: --workspace --all-targets ${{ matrix.target }} - uses: actions-rs/cargo@v1 with: + use-cross: ${{ matrix.use-cross }} command: test - args: --workspace + args: --workspace ${{ matrix.target }} - uses: actions-rs/cargo@v1 with: + use-cross: ${{ matrix.use-cross }} command: test - args: --workspace ${{ matrix.features }} + args: --workspace ${{ matrix.features }} ${{ matrix.target }} lint: runs-on: ubuntu-latest diff --git a/Cargo.toml b/Cargo.toml index 669fd0d2..695777f1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,7 @@ rust-version = "1.56" [dependencies] console = { version = "0.15", default-features = false, features = ["ansi-parsing"] } number_prefix = "0.4" +portable-atomic = "0.3.15" rayon = { version = "1.1", optional = true } tokio = { version = "1", optional = true, features = ["fs", "io-util"] } unicode-segmentation = { version = "1", optional = true } diff --git a/src/progress_bar.rs b/src/progress_bar.rs index fb7bf83d..be69b012 100644 --- a/src/progress_bar.rs +++ b/src/progress_bar.rs @@ -1,6 +1,6 @@ -use std::borrow::Cow; #[cfg(test)] -use std::sync::atomic::{AtomicBool, Ordering}; +use portable_atomic::{AtomicBool, Ordering}; +use std::borrow::Cow; use std::sync::{Arc, Condvar, Mutex, MutexGuard, Weak}; use std::time::{Duration, Instant}; use std::{fmt, io, thread}; diff --git a/src/state.rs b/src/state.rs index fb7de2be..d7dfee7f 100644 --- a/src/state.rs +++ b/src/state.rs @@ -1,9 +1,10 @@ use std::borrow::Cow; -use std::sync::atomic::{AtomicU64, AtomicU8, Ordering}; use std::sync::Arc; use std::time::{Duration, Instant}; use std::{fmt, io}; +use portable_atomic::{AtomicU64, AtomicU8, Ordering}; + use crate::draw_target::ProgressDrawTarget; use crate::style::ProgressStyle;