name: CI

permissions:
  contents: read

on:
  pull_request:
  push:
    branches:
      - master
      - '[0-9]+.[0-9]+'
  schedule:
    - cron: '0 1 * * *'

env:
  CARGO_INCREMENTAL: 0
  CARGO_NET_RETRY: 10
  CARGO_TERM_COLOR: always
  RUST_BACKTRACE: 1
  RUSTFLAGS: -D warnings
  RUSTUP_MAX_RETRIES: 10

defaults:
  run:
    shell: bash

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
  cancel-in-progress: true

jobs:
  test:
    name: cargo test
    strategy:
      fail-fast: false
      matrix:
        include:
          - os: ubuntu-latest
          - os: macos-latest
          - os: windows-latest
          - os: ubuntu-latest
            target: aarch64-unknown-linux-gnu
          - os: ubuntu-latest
            target: armv7-unknown-linux-gnueabihf
          - os: ubuntu-latest
            target: armv5te-unknown-linux-gnueabi
          - os: ubuntu-latest
            target: i686-unknown-linux-gnu
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        # --no-self-update is necessary because the windows environment cannot self-update rustup.exe.
        run: rustup update nightly --no-self-update && rustup default nightly
      - uses: taiki-e/setup-cross-toolchain-action@v1
        with:
          target: ${{ matrix.target }}
        if: matrix.target != ''
      - run: cargo test --workspace --all-features $DOCTEST_XCOMPILE
      - run: cargo test --workspace --all-features --release $DOCTEST_XCOMPILE
        # TODO: https://github.com/rust-lang/futures-rs/issues/2451
        if: matrix.target != 'aarch64-unknown-linux-gnu'

  core-msrv:
    name: cargo +${{ matrix.rust }} build (futures-{core, io, sink})
    strategy:
      matrix:
        rust:
          # This is the minimum Rust version supported by futures-core, futures-io, futures-sink.
          # When updating this, the reminder to update the minimum required version in README.md and Cargo.toml.
          - '1.36'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
      # cargo does not support for --features/--no-default-features with workspace, so use cargo-hack instead.
      # Refs: cargo#3620, cargo#4106, cargo#4463, cargo#4753, cargo#5015, cargo#5364, cargo#6195
      - name: Install cargo-hack
        uses: taiki-e/install-action@cargo-hack
      # remove dev-dependencies to avoid https://github.com/rust-lang/cargo/issues/4866
      - run: cargo hack --remove-dev-deps --workspace
      # Check no-default-features
      - run: |
          cargo hack build --workspace --ignore-private --no-default-features \
            --exclude futures --exclude futures-util --exclude futures-task --exclude futures-macro --exclude futures-executor --exclude futures-channel --exclude futures-test
      # Check alloc feature
      - run: |
          cargo hack build --workspace --ignore-private --no-default-features --features alloc --ignore-unknown-features \
            --exclude futures --exclude futures-util --exclude futures-task --exclude futures-macro --exclude futures-executor --exclude futures-channel --exclude futures-test
      # Check std feature
      - run: |
          cargo hack build --workspace --ignore-private --no-default-features --features std \
            --exclude futures --exclude futures-util --exclude futures-task --exclude futures-macro --exclude futures-executor --exclude futures-channel --exclude futures-test

  util-msrv:
    name: cargo +${{ matrix.rust }} build
    env:
      CARGO_NET_GIT_FETCH_WITH_CLI: true
    strategy:
      matrix:
        rust:
          # This is the minimum Rust version supported by futures, futures-util, futures-task, futures-macro, futures-executor, futures-channel, futures-test.
          # When updating this, the reminder to update the minimum required version in README.md and Cargo.toml.
          - '1.56'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
      - name: Install cargo-hack
        uses: taiki-e/install-action@cargo-hack
      # remove dev-dependencies to avoid https://github.com/rust-lang/cargo/issues/4866
      - run: cargo hack --remove-dev-deps --workspace
      # Check default features
      - run: cargo hack build --workspace --ignore-private
      # Check no-default-features
      - run: cargo hack build --workspace --exclude futures-test --ignore-private --no-default-features
      # Check alloc feature
      - run: cargo hack build --workspace --exclude futures-test --ignore-private --no-default-features --features alloc --ignore-unknown-features
      # Check std feature
      - run: cargo hack build --workspace --ignore-private --no-default-features --features std --ignore-unknown-features
      # Check compat feature (futures, futures-util)
      # Exclude io-compat feature because the MSRV when it is enabled depends on the MSRV of tokio 0.1.
      - run: cargo hack build -p futures -p futures-util --no-default-features --features std,compat
      # Check thread-pool feature (futures, futures-executor)
      - run: cargo hack build -p futures -p futures-executor --no-default-features --features std,thread-pool

  build:
    name: cargo +${{ matrix.rust }} build
    strategy:
      fail-fast: false
      matrix:
        rust:
          - stable
          - beta
          - nightly
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
      - name: Install cargo-hack
        uses: taiki-e/install-action@cargo-hack
      - run: cargo hack build --workspace --no-dev-deps
      - run: cargo build --tests --features default,thread-pool,io-compat --manifest-path futures/Cargo.toml

  minimal-versions:
    name: cargo minimal-versions build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup update nightly && rustup default nightly
      - name: Install cargo-hack
        uses: taiki-e/install-action@cargo-hack
      - name: Install cargo-minimal-versions
        uses: taiki-e/install-action@cargo-minimal-versions
      - run: cargo minimal-versions build --workspace --ignore-private --all-features

  no-std:
    name: cargo build --target ${{ matrix.target }}
    strategy:
      fail-fast: false
      matrix:
        # thumbv7m-none-eabi supports atomic CAS.
        # thumbv6m-none-eabi supports atomic, but not atomic CAS.
        target:
          - thumbv7m-none-eabi
          - thumbv6m-none-eabi
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup update nightly && rustup default nightly
      - run: rustup target add ${{ matrix.target }}
      - name: Install cargo-hack
        uses: taiki-e/install-action@cargo-hack
      # remove dev-dependencies to avoid https://github.com/rust-lang/cargo/issues/4866
      - run: cargo hack --remove-dev-deps --workspace
      - run: |
          cargo hack build --manifest-path futures/tests/no-std/Cargo.toml \
            --each-feature --optional-deps \
            --target ${{ matrix.target }}
      - run: |
          cargo hack build --workspace --ignore-private \
            --exclude futures-test --exclude futures-macro \
            --no-default-features \
            --target ${{ matrix.target }}
      - run: |
          cargo hack build --workspace --ignore-private \
            --exclude futures-test --exclude futures-macro \
            --no-default-features --features alloc --ignore-unknown-features \
            --target ${{ matrix.target }}
      - run: |
          cargo hack build --workspace --ignore-private \
            --exclude futures-test --exclude futures-macro \
            --no-default-features --features async-await,alloc --ignore-unknown-features \
            --target ${{ matrix.target }}

  bench:
    name: cargo bench
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup update nightly && rustup default nightly
      - run: cargo bench --workspace
      - run: cargo bench --manifest-path futures-util/Cargo.toml --features=bilock,unstable

  features:
    name: cargo hack check --feature-powerset
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup update nightly && rustup default nightly
      - name: Install cargo-hack
        uses: taiki-e/install-action@cargo-hack
      # Check each specified feature works properly
      # * `--feature-powerset` - run for the feature powerset of the package
      # * `--depth 2` - limit the max number of simultaneous feature flags of `--feature-powerset`
      # * `--no-dev-deps` - build without dev-dependencies to avoid https://github.com/rust-lang/cargo/issues/4866
      # * `--exclude futures-test` - futures-test cannot be compiled with no-default features
      # * `--features unstable` - some features cannot be compiled without this feature
      # * `--ignore-unknown-features` - some crates doesn't have 'unstable' feature
      - run: |
          cargo hack check \
            --feature-powerset --depth 2 --no-dev-deps \
            --workspace --exclude futures-test \
            --features unstable --ignore-unknown-features

  # When this job failed, run ci/no_atomic_cas.sh and commit result changes.
  codegen:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup update nightly && rustup default nightly
      - run: ci/no_atomic_cas.sh
      - run: git add -N . && git diff --exit-code
        if: github.repository_owner != 'rust-lang' || github.event_name != 'schedule'
      - id: diff
        run: |
          git config user.name "Taiki Endo"
          git config user.email "te316e89@gmail.com"
          git add -N .
          if ! git diff --exit-code; then
              git add .
              git commit -m "Update no_atomic_cas.rs"
              echo "::set-output name=success::false"
          fi
        if: github.repository_owner == 'rust-lang' && github.event_name == 'schedule'
      - uses: peter-evans/create-pull-request@v5
        with:
          title: Update no_atomic_cas.rs
          body: |
            Auto-generated by [create-pull-request][1]
            [Please close and immediately reopen this pull request to run CI.][2]

            [1]: https://github.com/peter-evans/create-pull-request
            [2]: https://github.com/peter-evans/create-pull-request/blob/HEAD/docs/concepts-guidelines.md#workarounds-to-trigger-further-workflow-runs
          branch: update-no-atomic-cas-rs
        if: github.repository_owner == 'rust-lang' && github.event_name == 'schedule' && steps.diff.outputs.success == 'false'

  miri:
    name: cargo miri test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup toolchain install nightly --component miri && rustup default nightly
      - run: cargo miri test --workspace --all-features
        env:
          MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-symbolic-alignment-check -Zmiri-disable-isolation
          RUSTFLAGS: ${{ env.RUSTFLAGS }} -Z randomize-layout

  san:
    name: cargo test -Z sanitizer=${{ matrix.sanitizer }}
    strategy:
      fail-fast: false
      matrix:
        sanitizer:
          - address
          - memory
          - thread
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup toolchain install nightly --component rust-src && rustup default nightly
      - run: cargo -Z build-std test --workspace --all-features --target x86_64-unknown-linux-gnu --lib --tests
        env:
          # TODO: Once `cfg(sanitize = "..")` is stable, replace
          # `cfg(futures_sanitizer)` with `cfg(sanitize = "..")` and remove
          # `--cfg futures_sanitizer`.
          RUSTFLAGS: -D warnings -Z sanitizer=${{ matrix.sanitizer }} --cfg futures_sanitizer

  # This branch no longer actively developed. Most commits to this
  # branch are backporting and should not be blocked by clippy.
  # clippy:
  #   name: cargo clippy
  #   runs-on: ubuntu-latest
  #   steps:
  #     - uses: actions/checkout@v4
  #     - name: Install Rust
  #       run: rustup toolchain install nightly --component clippy && rustup default nightly
  #     - run: cargo clippy --workspace --all-features --all-targets

  fmt:
    name: cargo fmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup update stable
      - run: cargo fmt --all -- --check

  docs:
    name: cargo doc
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        run: rustup update nightly && rustup default nightly
      - run: RUSTDOCFLAGS="-D warnings --cfg docsrs" cargo doc --workspace --no-deps --all-features
