index : static-web-server.git

ascending towards madness

freebsd_instance:
  image: freebsd-12-2-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
  matrix:
    - name: freebsd-amd64-test
      setup_script:
        - pkg install -y bash curl
        - curl https://sh.rustup.rs -sSf --output rustup.sh
        - sh rustup.sh -y --profile minimal --default-toolchain stable
        - . $HOME/.cargo/env
        - |
          echo "~~~~ rustc --version ~~~~"
          rustc --version
          rustup show active-toolchain
      test_script:
        - . $HOME/.cargo/env
        - cargo test --all
      build_test_script:
        - . $HOME/.cargo/env
        - |
          cargo build --verbose

    - name: freebsd-i686-test
      setup_script:
        - pkg install -y bash curl
        - curl https://sh.rustup.rs -sSf --output rustup.sh
        - sh rustup.sh -y --profile minimal --default-toolchain stable
        - . $HOME/.cargo/env
        - rustup target add i686-unknown-freebsd
        - |
          echo "~~~~ rustc --version ~~~~"
          rustc --version
          rustup show active-toolchain
      test_script:
        - . $HOME/.cargo/env
        - |
          cargo test --all --target i686-unknown-freebsd
      build_test_script:
        - . $HOME/.cargo/env
        - |
          cargo build --verbose --target i686-unknown-freebsd

task:
  only_if: $CIRRUS_TAG != ''
  env:
    RUSTFLAGS: -Dwarnings
    GITHUB_TOKEN: ENCRYPTED[d1766ef328d83729917d2ffb875d64c35d1c0177edf8f32e66ec464daf5c1b7b145d65fc6c044a73fffe2235d3b38349]
  matrix:
    - name: freebsd-amd64-release
      env:
        BINARY_ARCH: x86_64
      setup_script:
        - pkg install -y bash curl jq
        - curl https://sh.rustup.rs -sSf --output rustup.sh
        - sh rustup.sh -y --profile minimal --default-toolchain stable
        - . $HOME/.cargo/env
        - |
          echo "~~~~ rustc --version ~~~~"
          rustc --version
      build_script: |
        . $HOME/.cargo/env
        cargo build --verbose --release --target=x86_64-unknown-freebsd
      archive_script: |
        . $HOME/.cargo/env
        staging="static-web-server-$CIRRUS_TAG-x86_64-unknown-freebsd"
        mkdir -p "$staging/"
        cp "target/x86_64-unknown-freebsd/release/static-web-server" "$staging/"
        strip "$staging/static-web-server"
        cp {README.md,LICENSE-APACHE,LICENSE-MIT} "$staging/"
        tar czf "$staging.tar.gz" "$staging"
      upload_script: |
        ./ci/upload_release_file.sh

    - name: freebsd-i686-release
      env:
        BINARY_ARCH: i686
      setup_script:
        - pkg install -y bash curl jq
        - curl https://sh.rustup.rs -sSf --output rustup.sh
        - sh rustup.sh -y --profile minimal --default-toolchain stable
        - . $HOME/.cargo/env
        - rustup target add i686-unknown-freebsd
        - |
          echo "~~~~ rustc --version ~~~~"
          rustc --version
      build_script: |
        . $HOME/.cargo/env
        cargo build --verbose --release --target=i686-unknown-freebsd
      archive_script: |
        . $HOME/.cargo/env
        staging="static-web-server-$CIRRUS_TAG-i686-unknown-freebsd"
        mkdir -p "$staging/"
        cp "target/i686-unknown-freebsd/release/static-web-server" "$staging/"
        strip "$staging/static-web-server"
        cp {README.md,LICENSE-APACHE,LICENSE-MIT} "$staging/"
        tar czf "$staging.tar.gz" "$staging"
      upload_script: |
        ./ci/upload_release_file.sh