name: ci

on:
  push:
    branches:
    - master
    - main
  pull_request:
    branches:
    - master
    - main
  workflow_dispatch:

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

env:
  BOT_USER: "Deployment Bot"
  BOT_EMAIL: "verible-dev@googlegroups.com"
  GHA_MACHINE_TYPE: "n2-standard-8"
  DEBIAN_FRONTEND: "noninteractive"
  VERIBLE_BINDIR: "/tmp/verible-bin"

jobs:


  CheckFormatAndBuildClean:
    runs-on: ubuntu-latest
    steps:

    - name: Checkout code
      uses: actions/checkout@v4
      with:
        fetch-depth: 0

    - name: Set up Go
      uses: actions/setup-go@v5
      with:
        go-version: 'stable'

    - name: Install Dependencies
      run: |
        sudo apt-get install clang-format-19
        clang-format-19 --version
        go install github.com/bazelbuild/buildtools/buildifier@latest
        echo "PATH=$PATH:$(go env GOPATH)/bin/" >> $GITHUB_ENV

    - name: Run formatting style check
      run: |
        echo "--- check formatting ---"
        CLANG_FORMAT=clang-format-19 ./.github/bin/run-format.sh --show-diff
        echo "--- check build dependencies ---"
        ./.github/bin/run-build-cleaner.sh ...
        echo "--- check potential problems ---"
        ./.github/bin/check-potential-problems.sh

  ClangTidy:
    container: ubuntu:jammy
    runs-on: [self-hosted, Linux, X64, gcp-custom-runners]

    env:
      GHA_MACHINE_TYPE: "n2-standard-4"

    steps:

    - name: Checkout code
      uses: actions/checkout@v4
      with:
        fetch-depth: 0

    - name: Get latest clang-tidy
      run: |
        apt -qq -y update
        apt -qq -y install wget software-properties-common gpg lsb-release
        apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 15CF4D18AF4F7421
        wget https://apt.llvm.org/llvm.sh
        chmod +x ./llvm.sh
        ./llvm.sh 18

    - name: Install other Dependencies
      run: |
        apt -qq -y install clang-tidy-11 clang-tidy-18 build-essential git wget
        source ./.github/settings.sh
        ./.github/bin/install-bazel.sh

    - name: Create Cache Timestamp
      id: cache_timestamp
      uses: nanzm/get-time-action@v2.0
      with:
        format: 'YYYY-MM-DD-HH-mm-ss'

    - name: Retrieve cached results
      uses: actions/cache@v3
      with:
        path: |
          /root/.cache/clang-tidy
          /root/.cache/bazel
        key: clang-tidy2-${{ steps.cache_timestamp.outputs.time }}
        restore-keys: clang-tidy2-

    - name: Run clang tidy
      run: |
        echo "::group::Make Compilation DB"
        .github/bin/make-compilation-db.sh
        cat compile_flags.txt
        echo "::endgroup::"

        # For runtime references, use clang-tidy 11 that still has it,
        # everything else: latest.
        CLANG_TIDY=clang-tidy-11 ./.github/bin/run-clang-tidy-cached.cc --checks="-*,google-runtime-references" \
           || ( cat verible_clang-tidy.out ; exit 1)

        CLANG_TIDY=clang-tidy-18 ./.github/bin/run-clang-tidy-cached.cc \
            || ( cat verible_clang-tidy.out ; exit 1)

    - name: 📤 Upload performance graphs
      uses: actions/upload-artifact@v4
      if: success() || failure()
      with:
        name: "diag-clang-tidy"
        path: "**/plot_*.svg"

  Check:
    container: ubuntu:noble
    runs-on: [self-hosted, Linux, X64, gcp-custom-runners]
    strategy:
      fail-fast: false
      matrix:
        mode:
        - test
        - test-clang
        - test-nortti
        - test-c++23
        - smoke-test
        #- smoke-test-analyzer  #issue: #2046
        - asan
        - asan-clang
        - compile
        - compile-clang
        - compile-static
        - compile-static-clang
        - clean
        arch:
        - x86_64
        - arm64
        exclude:
          - mode: test-nortti
            arch: arm64
          - mode: test-c++23
            arch: arm64
          - mode: asan
            arch: arm64
          - mode: asan-clang
            arch: arm64
    env:
      MODE: ${{ matrix.mode }}
      ARCH: ${{ matrix.arch }}
      GHA_MACHINE_TYPE: "${{ matrix.arch == 'arm64' && 't2a-standard-8' || 'n2-standard-8' }}"
    name: ${{ matrix.arch }} ${{ matrix.mode }}

    steps:

    - name: Checkout code
      uses: actions/checkout@v4
      with:
       # Download complete repository + tags
       fetch-depth: 0

    - name: Create Cache Timestamp
      id: cache_timestamp
      uses: nanzm/get-time-action@v2.0
      with:
        format: 'YYYY-MM-DD-HH-mm-ss'

    - name: Mount bazel cache
      uses: actions/cache@v3
      if: matrix.mode != 'clean' && matrix.mode != 'coverage'
      with:
        path: "/root/.cache/bazel"
        key: bazelcache_${{ matrix.arch }}_${{ matrix.mode }}_${{ steps.cache_timestamp.outputs.time }}
        restore-keys: bazelcache_${{ matrix.arch }}_${{ matrix.mode }}_

    - name: Install Dependencies
      run: |
        set -x
        apt -qqy update
        apt -qq -y install build-essential wget git python3 python-is-python3 default-jdk cmake python3-pip ripgrep
        apt -qq -y install gcc-14 g++-14
        apt -qq -y install clang-19
        source ./.github/settings.sh
        ./.github/bin/set-compiler.sh 14
        ARCH="$ARCH" ./.github/bin/install-bazel.sh

    - name: Build Slang
      if: matrix.mode == 'smoke-test-analyzer'
      run: |
        pushd .
        git clone https://github.com/MikePopoloski/slang.git /tmp/slang
        cd /tmp/slang
        git checkout v3.0  # Pin version; current head cmake files in flux
        cmake -B build
        cmake --build build -j $(nproc)
        cmake --install build --strip
        popd

    - name: Install Python dependencies
      if: matrix.mode == 'smoke-test-analyzer'
      run: |
        pip3 install mdutils

    - name: ${{ matrix.mode }} Verible
      run: ./.github/bin/build-and-test.sh

    - name: Gather and pack binaries
      if: matrix.mode == 'compile' && matrix.arch == 'x86_64'
      # these are used for building the gh-pages.
      run: |
        bazel build -c opt :install-binaries
        # Litmus test
        bazel-bin/verible/verilog/tools/syntax/verible-verilog-syntax --version
        .github/bin/simple-install.sh $VERIBLE_BINDIR
        tar cfv verible-bin.tar -C $VERIBLE_BINDIR .

    - name: Upload bazel-bin
      if: matrix.mode == 'compile' && matrix.arch == 'x86_64'
      uses: actions/upload-artifact@v4
      with:
        name: verible-bin
        path: verible-bin.tar

    - name: Pack up static results
      if: matrix.mode == 'compile-static'
      # Note: generic builds were removed in #2058, so here we pack the
      # CI results for static binaries.
      run: |
        VERSION=$(git describe --match=v*)
        .github/bin/simple-install.sh verible-${VERSION}/bin
        tar cvzf verible-${VERSION}-linux-static-${{matrix.arch}}.tar.gz verible-${VERSION}

    - name: 📤 Upload artifact
      uses: actions/upload-artifact@v4
      with:
        name: verible-install-${{ matrix.arch }}
        path: verible-*.tar.gz

    - name: 📤 Upload performance graphs
      uses: actions/upload-artifact@v4
      if: success() || failure()
      with:
        name: "diag-${{ matrix.arch }}-${{ matrix.mode }}"
        path: "**/plot_*.svg"


  KytheVerification:
    runs-on: ubuntu-24.04
    if: false   # Currently disabled, need to investigate further

    steps:

    - name: Checkout code
      uses: actions/checkout@v4
      with:
       # Download complete repository + tags
       fetch-depth: 0

    - name: Install Dependencies
      run: |
        source ./.github/settings.sh
        ./.github/bin/set-compiler.sh 10
        ./.github/bin/install-bazel.sh
        ./.github/bin/install-kythe-tools.sh

    - name: Run Kythe Verification tests
      run: |
        source ./.github/settings.sh
        ./.github/bin/verify-kythe-extraction.sh


  KytheXrefs:
    container: ubuntu:noble
    runs-on: [self-hosted, Linux, X64, gcp-custom-runners]

    steps:

    - name: Checkout code
      uses: actions/checkout@v4
      with:
       # Download complete repository + tags
       fetch-depth: 0

    - name: Install Dependencies
      run: |
        set -x
        apt -qqy update
        apt -qq -y install build-essential wget git python3 python-is-python3 default-jdk cmake python3-pip ripgrep
        apt -qq -y install gcc-14 g++-14
        pwd
        source ./.github/settings.sh
        ./.github/bin/set-compiler.sh 14
        ./.github/bin/install-bazel.sh
        ./.github/bin/install-kythe.sh

    - name: Extract Verible Kythe xRefs
      run: |
        source ./.github/settings.sh
        ./.github/bin/run-kythe.sh

    - name: 📤 Upload Kythe xRefs to the action artifacts
      uses: actions/upload-artifact@v4
      with:
        path: kythe_output/*.kzip

  MacOsBuild:
    runs-on: macos-latest
    steps:

    - name: Install Dependencies
      run: |
        echo "USE_BAZEL_VERSION=7.6.1" >> $GITHUB_ENV

    - name: Checkout code
      uses: actions/checkout@v4
      with:
        fetch-depth: 0

    - name: Create Cache Timestamp
      id: cache_timestamp
      uses: nanzm/get-time-action@v2.0
      with:
        format: 'YYYY-MM-DD-HH-mm-ss'

    - name: Mount bazel cache
      uses: actions/cache@v3
      with:
        path: |
          /private/var/tmp/_bazel_runner
        key: bazelcache_macos1_${{ steps.cache_timestamp.outputs.time }}
        restore-keys: bazelcache_macos1_

    - name: Tests
      # MacOS has a broken patch utility:
      # //verible/verilog/tools/lint:lint-tool_test trips over a no-newline-at-end-of-file
      run: bazel test -c opt --noshow_progress --test_output=errors --cxxopt=-Wno-range-loop-analysis -- //... -//verible/verilog/tools/lint:lint-tool_test

    - name: Build
      run: |
        bazel build -c opt --noshow_progress --test_output=errors --cxxopt=-Wno-range-loop-analysis :install-binaries
        # Litmus test
        bazel-bin/verible/verilog/tools/syntax/verible-verilog-syntax --version

    - name: Pack up
      run: |
        VERSION=$(git describe --match=v*)
        .github/bin/simple-install.sh verible-${VERSION}-macOS/bin
        tar cvzf verible-${VERSION}-macOS.tar.gz verible-${VERSION}-macOS

    - name: 📤 Upload artifact
      uses: actions/upload-artifact@v4
      with:
        name: verible-install-macos
        path: verible-*.tar.gz

  PrepareVSPlugin:
    container: ubuntu:jammy
    runs-on: [self-hosted, Linux, X64, gcp-custom-runners]
    steps:

    - uses: actions/checkout@v4
      with:
        fetch-depth: 0

    - name: Install Dependencies
      run: |
        apt -qqy update
        apt -qq -y install npm nodejs

  WindowsBuild:
    runs-on: windows-latest
    steps:

    - uses: actions/checkout@v4
      with:
        fetch-depth: 0

    - name: Create Cache Timestamp
      id: cache_timestamp
      uses: nanzm/get-time-action@v2.0
      with:
        format: 'YYYY-MM-DD-HH-mm-ss'

    - name: Mount bazel cache
      uses: actions/cache@v3
      with:
        path: "c:/users/runneradmin/_bazel_runneradmin"
        key: bazelcache_windows_${{ steps.cache_timestamp.outputs.time }}
        restore-keys: bazelcache_windows_

    - name: Install dependencies
      run: |
        choco install winflexbison3

    - name: Debug bazel directory settings
      run: bazel.exe info

    - name: Run Tests
      run: bazel.exe test --keep_going --noshow_progress --test_output=errors //...

    - name: Build Verible Binaries
      run: |
        bazel.exe build --keep_going --noshow_progress -c opt :install-binaries
        # Litmus test
        bazel-bin/verible/verilog/tools/syntax/verible-verilog-syntax --version

    - name: Prepare release
      run: |
        $VERSION = git describe --match=v*
        bash .github/bin/simple-install.sh "c:/verible-${VERSION}-win64"
        7z a "verible-${VERSION}-win64.zip" "c:/verible-${VERSION}-win64"

    - name: 📤 Upload artifact
      uses: actions/upload-artifact@v4
      with:
        name: verible-install-win
        path: verible-*.zip

    # We need to shut down bazel to let go of the filedescriptors in the
    # cache directory. Because of strange filesystem semantics on Windows, this
    # prevents packaging up the cache.
    - name: Stop Bazel
      run: |
        bazel.exe shutdown
        # The cache pack/restore has issues with these symbolic links
        rm c:/users/runneradmin/_bazel_runneradmin/*/install
        rm c:/users/runneradmin/_bazel_runneradmin/*/java.log


  PackReleaseSource:
    name: 📦 Pack Sources
    runs-on: ubuntu-24.04

    steps:
    - name: Checkout code
      uses: actions/checkout@v4
      with:
        fetch-depth: 0

    - name: Pack Sources
      run: |
        TAG_VERSION=$(git describe --match=v*)
        MODULE_VERSION=$(git describe --match=v* 2>/dev/null \
                         | sed 's/v\([^-]*\)-\([0-9]*\)-.*/\1.\2/')

        OUT_SRC=verible-${TAG_VERSION}

        mkdir ../${OUT_SRC}
        cp -r . ../${OUT_SRC}

        # Bake in current version into MODULE.bazel
        sed "s/\(.*version.*\"\)\(head\)\(\".*\)/\1${MODULE_VERSION}\3/" \
           -i ../${OUT_SRC}/MODULE.bazel

        tar --exclude=.git -cvzf ${OUT_SRC}.tar.gz ../${OUT_SRC}

    - name: 📤 Upload Source tar
      uses: actions/upload-artifact@v4
      with:
        name: src
        path: verible-*.tar.gz

  Release:
    name: 📦 Release
    needs: [ Check, PackReleaseSource, MacOsBuild, WindowsBuild, PrepareVSPlugin ]
    runs-on: ubuntu-24.04
    permissions:
      contents: write

    if: ${{github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master')}}

    steps:

    - uses: actions/checkout@v4
      with:
       # Download complete repository + tags
       fetch-depth: 0

    - name: 📥 Download artifacts
      uses: actions/download-artifact@v4
      with:
        merge-multiple: true

    - name: Generate and apply TAG
      run: |
        git config --local user.name "$BOT_USER"
        git config --local user.email "$BOT_EMAIL"

        # Create a tag of form v0.0-183-gdf2b162-20191112132344
        TAG="${TAG:-$(git describe --match=v*)}"

        git tag "$TAG" || true
        echo "TAG=$TAG" >> $GITHUB_ENV

        ls -l verible-v*

    - name: Deploy release and assets
      uses: svenstaro/upload-release-action@2.9.0
      with:
        repo_token: ${{ secrets.GITHUB_TOKEN }}
        file: verible-v*.{tar.gz,zip}
        tag: ${{ env.TAG }}
        overwrite: true
        file_glob: true

    - name: Publish VSCode extension
      env:
        VSC_MARKETPLACE_TOKEN: ${{ secrets.VSC_MARKETPLACE_TOKEN }}
      run: |
        cd verible/verilog/tools/ls/vscode
        npm install
        # install vsce globally
        npm install -g @vscode/vsce

        # Patch the JSON file to contain our current git tag+commit
        VERSION=$(git describe | sed 's|v\([^-]\+\)-\([[:digit:]]\+\).*|\1.\2|')
        sed -i 's|\(.*version.*\): "\([^"]\+\)"|\1: "'${VERSION}'"|g' package.json
        sed -i 's|\(.*tag.*\): "\([^"]\+\)"|\1: "'${TAG}'"|g' package.json
        vsce publish -p ${VSC_MARKETPLACE_TOKEN}

  GhPages:
    name: Build and deploy GitHub pages
    needs: [Check]
    runs-on: ubuntu-24.04
    permissions:
      contents: write

    steps:
      - uses: actions/checkout@v4

      - uses: actions/download-artifact@v4
        with:
          name: verible-bin

      - name: Extract Verible binaries
        run: mkdir -p $VERIBLE_BINDIR && tar xvf verible-bin.tar -C $VERIBLE_BINDIR

      - name: Set up things for GitHub Pages deployment
        run: ./.github/bin/github-pages-setup.sh $VERIBLE_BINDIR

      - name: Deployment
        if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
        uses: JamesIves/github-pages-deploy-action@v4.6.3
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          BRANCH: gh-pages
          FOLDER: /tmp/pages
          CLEAN: true
