# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

name: Rust Continuous Integration
on:
  workflow_dispatch:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]
    paths:
      - .github/workflows/test-lang-rust-ci.yml
      - lang/rust/**

permissions:
  contents: read

env:
  RUSTFLAGS: -Dwarnings
  CARGO_REGISTRIES_CRATES_IO_PROTOCOL: 'git' # TODO: remove this env var once MSRV is 1.70.0+

defaults:
  run:
    working-directory: lang/rust

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  ci:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - 'stable'
          - 'beta'
          - 'nightly'
          - '1.65.0'  # MSRV
        target:
          - x86_64-unknown-linux-gnu
          - wasm32-unknown-unknown

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Cache Cargo
        id: cache-cargo
        uses: actions/cache@v3
        with:
          # these represent dependencies downloaded by cargo
          # and thus do not depend on the OS, arch nor rust version.
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-cache2-

      - name: Cache Rust dependencies
        id: cache-target
        uses: actions/cache@v3
        with:
          # these represent compiled steps of both dependencies and avro
          # and thus are specific for a particular OS, arch and rust version.
          path: lang/rust/target
          key: ${{ runner.os }}-target-cache2-

      - name: Rust Toolchain
        uses: dtolnay/rust-toolchain@nightly
        with:
          toolchain: ${{ matrix.rust }}
          components: rustfmt
          targets: ${{ matrix.target }}

      - name: Cache cargo-rdme
        if: matrix.rust == 'stable' && matrix.target == 'x86_64-unknown-linux-gnu'
        uses: actions/cache@v3
        with:
          path: ~/.cargo-${{ matrix.rust }}/cargo-rdme
          key: cargo-rdme-

      # Check if the doc cumment in avro/src/lib.rs and avro/README.md are in sync.
      - name: Run cargo-rdme
        # The result is environment independent so one test pattern is enough.
        if: matrix.rust == 'stable' && matrix.target == 'x86_64-unknown-linux-gnu'
        run: |
          cargo install --root ~/.cargo-${{ matrix.rust }}/cargo-rdme --locked cargo-rdme
          export PATH=$PATH:~/.cargo-${{ matrix.rust }}/cargo-rdme/bin
          cargo rdme --check

      - name: Rust Format
        if: matrix.target != 'wasm32-unknown-unknown'
        run: cargo fmt --all -- --check

      - name: Rust Build
        run: cargo build --all-features --all-targets

      - name: Rust Test
        if: matrix.target != 'wasm32-unknown-unknown'
        run: cargo test --all-features --target ${{ matrix.target }}

      - name: Rust Test AVRO-3549
        if: matrix.target != 'wasm32-unknown-unknown'
        run: cargo test --target ${{ matrix.target }} test_avro_3549_read_not_enabled_codec

      # because of https://github.com/rust-lang/cargo/issues/6669
      - name: Rust Test docs
        if: matrix.target != 'wasm32-unknown-unknown'
        run: cargo test --doc

  interop:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Rust Toolchain
        uses: dtolnay/rust-toolchain@nightly
        with:
          toolchain: stable

      - name: Cache Cargo
        uses: actions/cache@v3
        with:
          # these represent dependencies downloaded by cargo
          # and thus do not depend on the OS, arch nor rust version.
          path: ~/.cargo
          key: cargo-cache1-

      - name: Cache Rust dependencies
        uses: actions/cache@v3
        with:
          # these represent compiled steps of both dependencies and avro
          # and thus are specific for a particular OS, arch and rust version.
          path: lang/rust/target
          key: ${{ runner.os }}-target-cache1-stable-

      - name: Cache Local Maven Repository
        uses: actions/cache@v3
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-maven-

      - name: Install Java Avro for Interop Test
        working-directory: .
        run: mvn -B install -DskipTests

      - name: Create Interop Data Directory
        working-directory: .
        run: mkdir -p build/interop/data

      - name: Generate Interop Resources
        working-directory: lang/java/avro
        run: mvn -B -P interop-data-generate generate-resources

      - name: Generate interop data
        run: ./build.sh interop-data-generate

      - name: Rust reads interop files created by Java and Rust
        run: ./build.sh interop-data-test

      - uses: shogo82148/actions-setup-perl@v1
        with:
          perl-version: 5.32

      - name: Install Dependencies
        run: |
          sudo apt-get -qqy install --no-install-recommends libcompress-raw-zlib-perl \
                                                            libcpan-uploader-perl \
                                                            libencode-perl \
                                                            libio-string-perl \
                                                            libjansson-dev \
                                                            libjson-xs-perl \
                                                            libmodule-install-perl \
                                                            libmodule-install-readmefrompod-perl \
                                                            libobject-tiny-perl \
                                                            libsnappy-dev \
                                                            libtest-exception-perl \
                                                            libtest-pod-perl
          cpanm --mirror https://www.cpan.org/ install Compress::Zstd \
                                                       Error::Simple \
                                                       Module::Install::Repository \
                                                       Object::Tiny \
                                                       Regexp::Common \
                                                       Try::Tiny \
                                                       inc::Module::Install


      - name: Perl reads interop files created by Java and Rust
        working-directory: lang/perl
        run: ./build.sh interop-data-test

  web-assembly:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Rust Toolchain
        uses: dtolnay/rust-toolchain@nightly
        with:
          toolchain: stable
          targets: wasm32-unknown-unknown

      - name: Cache Cargo
        uses: actions/cache@v3
        with:
          # these represent dependencies downloaded by cargo
          # and thus do not depend on the OS, arch nor rust version.
          path: ~/.cargo
          key: ${{ runner.os }}-cargo-cache2-

      - name: Cache Rust dependencies
        uses: actions/cache@v3
        with:
          # these represent compiled steps of both dependencies and avro
          # and thus are specific for a particular OS, arch and rust version.
          path: lang/rust/target
          key: ${{ runner.os }}-target-cache2-

      - name: Install wasm-pack
        run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh

      - name: Build the Web Assembly demo app
        run: wasm-pack build wasm-demo

      - name: Test the Web Assembly demo app
        run: RUST_BACKTRACE=1 wasm-pack test --headless --firefox wasm-demo
