name: "Test unsetting environment variables"
description: "An end-to-end integration test that unsets some environment variables"
operatingSystems:
  - ubuntu
versions:
  - linked
  - nightly-latest
installGo: true
installPython: true
installDotNet: true
steps:
  - uses: ./../action/init
    id: init
    with:
      db-location: ${{ runner.temp }}/customDbLocation
      # Swift is not supported on Ubuntu so we manually exclude it from the list here
      languages: cpp,csharp,go,java,javascript,python,ruby
      tools: ${{ steps.prepare-test.outputs.tools-url }}
  - name: Build code
    run: env -i PATH="$PATH" HOME="$HOME" ./build.sh
  - uses: ./../action/analyze
    id: analysis
    with:
      upload-database: false
  - run: |
      CPP_DB="${{ fromJson(steps.analysis.outputs.db-locations).cpp }}"
      if [[ ! -d "$CPP_DB" ]] || [[ ! "$CPP_DB" == "${RUNNER_TEMP}/customDbLocation/cpp" ]]; then
        echo "::error::Did not create a database for CPP, or created it in the wrong location." \
          "Expected location was '${RUNNER_TEMP}/customDbLocation/cpp' but actual was '${CPP_DB}'"
        exit 1
      fi
      CSHARP_DB="${{ fromJson(steps.analysis.outputs.db-locations).csharp }}"
      if [[ ! -d "$CSHARP_DB" ]] || [[ ! "$CSHARP_DB" == "${RUNNER_TEMP}/customDbLocation/csharp" ]]; then
        echo "::error::Did not create a database for C Sharp, or created it in the wrong location." \
          "Expected location was '${RUNNER_TEMP}/customDbLocation/csharp' but actual was '${CSHARP_DB}'"
        exit 1
      fi
      GO_DB="${{ fromJson(steps.analysis.outputs.db-locations).go }}"
      if [[ ! -d "$GO_DB" ]] || [[ ! "$GO_DB" == "${RUNNER_TEMP}/customDbLocation/go" ]]; then
        echo "::error::Did not create a database for Go, or created it in the wrong location." \
          "Expected location was '${RUNNER_TEMP}/customDbLocation/go' but actual was '${GO_DB}'"
        exit 1
      fi
      JAVA_DB="${{ fromJson(steps.analysis.outputs.db-locations).java }}"
      if [[ ! -d "$JAVA_DB" ]] || [[ ! "$JAVA_DB" == "${RUNNER_TEMP}/customDbLocation/java" ]]; then
        echo "::error::Did not create a database for Java, or created it in the wrong location." \
          "Expected location was '${RUNNER_TEMP}/customDbLocation/java' but actual was '${JAVA_DB}'"
        exit 1
      fi
      JAVASCRIPT_DB="${{ fromJson(steps.analysis.outputs.db-locations).javascript }}"
      if [[ ! -d "$JAVASCRIPT_DB" ]] || [[ ! "$JAVASCRIPT_DB" == "${RUNNER_TEMP}/customDbLocation/javascript" ]]; then
        echo "::error::Did not create a database for Javascript, or created it in the wrong location." \
          "Expected location was '${RUNNER_TEMP}/customDbLocation/javascript' but actual was '${JAVASCRIPT_DB}'"
        exit 1
      fi
      PYTHON_DB="${{ fromJson(steps.analysis.outputs.db-locations).python }}"
      if [[ ! -d "$PYTHON_DB" ]] || [[ ! "$PYTHON_DB" == "${RUNNER_TEMP}/customDbLocation/python" ]]; then
        echo "::error::Did not create a database for Python, or created it in the wrong location." \
          "Expected location was '${RUNNER_TEMP}/customDbLocation/python' but actual was '${PYTHON_DB}'"
        exit 1
      fi
