index : static-web-server.git

ascending towards madness

freebsd_instance:
  image: freebsd-13-1-release-amd64

# Test FreeBSD in a full VM on cirrus-ci.com
# The binary will be also built in 32-bit mode, but will execute on a
# 64-bit kernel and in a 64-bit environment. Our tests don't execute
# any of the system's binaries, so the environment shouldn't matter.
task:
  only_if: $CIRRUS_TAG == ''
  env:
    RUSTFLAGS: -Dwarnings --cfg tokio_unstable
    CARGO_FEATURES: "--features=all"
  matrix:
    - name: freebsd-amd64-test
      env:
        BINARY_ARCH: x86_64
    - name: freebsd-i686-test
      env:
        BINARY_ARCH: i686
  setup_script:
    - pkg install -y bash
    - curl https://sh.rustup.rs -sSf --output rustup.sh
    - sh rustup.sh -y --profile minimal --default-toolchain stable
    - . $HOME/.cargo/env
    - cp -r .cargo/config.toml $HOME/.cargo/
    - rustc --version
  toolchain_script:
    - . $HOME/.cargo/env
    - rustup target add $BINARY_ARCH-unknown-freebsd
  info_script:
    - . $HOME/.cargo/env
    - rustup show
  test_script:
    - . $HOME/.cargo/env
    - |
      cargo test --all --target="$BINARY_ARCH-unknown-freebsd" $CARGO_FEATURES
  build_test_script:
    - . $HOME/.cargo/env
    - |
      cargo build --bin static-web-server -vv --target="$BINARY_ARCH-unknown-freebsd" $CARGO_FEATURES
      target/$BINARY_ARCH-unknown-freebsd/debug/static-web-server -h

task:
  only_if: $CIRRUS_TAG != ''
  env:
    RUSTFLAGS: -Dwarnings --cfg tokio_unstable
    CARGO_FEATURES: "--features=all"
    GITHUB_TOKEN: ENCRYPTED[d1766ef328d83729917d2ffb875d64c35d1c0177edf8f32e66ec464daf5c1b7b145d65fc6c044a73fffe2235d3b38349]
  matrix:
    - name: freebsd-amd64-release
      env:
        BINARY_ARCH: x86_64
    - name: freebsd-i686-release
      env:
        BINARY_ARCH: i686
  setup_script:
    - pkg install -y bash jq
    - curl https://sh.rustup.rs -sSf --output rustup.sh
    - sh rustup.sh -y --profile minimal --default-toolchain stable
    - . $HOME/.cargo/env
    - cp -r .cargo/config.toml $HOME/.cargo/
    - rustc --version
  toolchain_script:
    - . $HOME/.cargo/env
    - rustup target add $BINARY_ARCH-unknown-freebsd
  info_script:
    - . $HOME/.cargo/env
    - rustup show
  build_script: |
    . $HOME/.cargo/env
    cargo build --bin static-web-server -vv --release --target="$BINARY_ARCH-unknown-freebsd" $CARGO_FEATURES
  archive_script: |
    staging="static-web-server-$CIRRUS_TAG-$BINARY_ARCH-unknown-freebsd"
    mkdir -p "$staging/"
    cp "target/$BINARY_ARCH-unknown-freebsd/release/static-web-server" "$staging/"
    cp {README.md,LICENSE-APACHE,LICENSE-MIT} "$staging/"
    tar czf "$staging.tar.gz" "$staging"
  upload_script: |
    ./scripts/ci/upload_release_file.sh