diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 6844a2cf..4089802e 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -52,11 +52,18 @@ jobs: target: x86_64-pc-windows-msvc features: '--no-default-features --features rodio_backend,pancurses_backend,share_clipboard,notify' steps: - - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - with: - targets: ${{ matrix.target }} - toolchain: stable + - uses: actions/checkout@v4 + name: Checkout src + - name: Install rustup + if: runner.os != 'Windows' + shell: bash + run: | + if ! command -v rustup &>/dev/null; then + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + echo "${CARGO_HOME:-$HOME/.cargo}/bin" >> $GITHUB_PATH + fi + - name: Add cross-compilation target + run: rustup target add ${{ matrix.target }} - name: Install macOS dependencies if: matrix.os == 'macos-latest' run: brew install portaudio pkg-config @@ -71,8 +78,6 @@ jobs: run: | apt update apt install -y ${{ matrix.dependencies }} - - uses: actions/checkout@v4 - name: Checkout src - uses: actions/cache@v4 with: path: | diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f246ad20..f375c261 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,11 +41,16 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - with: - targets: ${{ matrix.target }} - components: clippy, rustfmt + - name: Install rustup + if: runner.os != 'Windows' + shell: bash + run: | + if ! command -v rustup &>/dev/null; then + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --target ${{ matrix.target }} -y + echo "${CARGO_HOME:-$HOME/.cargo}/bin" >> $GITHUB_PATH + fi + - name: Install clippy + rustfmt + run: rustup component add clippy rustfmt - name: Install macOS dependencies if: matrix.os == 'macos-latest' run: brew install portaudio pkg-config @@ -65,11 +70,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - with: - target: x86_64-unknown-linux-gnu - components: clippy, rustfmt + - name: Install rustup + run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + - name: Install clippy + rustfmt + run: rustup component add rustfmt - name: cargo fmt run: cargo fmt --all -- --check @@ -90,11 +94,10 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-clippy-${{ hashFiles('**/Cargo.lock') }} - - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - with: - target: x86_64-unknown-linux-gnu - components: clippy, rustfmt + - name: Install rustup + run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + - name: Install clippy + rustfmt + run: rustup component add clippy - name: Install Linux dependencies run: | sudo apt update