name: "Multi-language repository" description: "An end-to-end integration test of a multi-language repository using automatic language detection for macOS" operatingSystems: ["macos", "ubuntu"] steps: - uses: actions/setup-go@v5 with: go-version: ">=1.21.0" - uses: ./../action/init id: init with: db-location: "${{ runner.temp }}/customDbLocation" languages: ${{ runner.os == 'Linux' && 'cpp,csharp,go,java,javascript,python,ruby' || '' }} tools: ${{ steps.prepare-test.outputs.tools-url }} - uses: ./../action/.github/actions/setup-swift if: runner.os == 'macOS' with: codeql-path: ${{ steps.init.outputs.codeql-path }} - name: Build code shell: bash run: ./build.sh - uses: ./../action/analyze id: analysis with: upload-database: false - name: Check language autodetect for all languages excluding Swift shell: bash run: | CPP_DB=${{ fromJson(steps.analysis.outputs.db-locations).cpp }} if [[ ! -d $CPP_DB ]] || [[ ! $CPP_DB == ${{ runner.temp }}/customDbLocation/* ]]; then echo "Did not create a database for CPP, or created it in the wrong location." exit 1 fi CSHARP_DB=${{ fromJson(steps.analysis.outputs.db-locations).csharp }} if [[ ! -d $CSHARP_DB ]] || [[ ! $CSHARP_DB == ${{ runner.temp }}/customDbLocation/* ]]; then echo "Did not create a database for C Sharp, or created it in the wrong location." exit 1 fi GO_DB=${{ fromJson(steps.analysis.outputs.db-locations).go }} if [[ ! -d $GO_DB ]] || [[ ! $GO_DB == ${{ runner.temp }}/customDbLocation/* ]]; then echo "Did not create a database for Go, or created it in the wrong location." exit 1 fi JAVA_DB=${{ fromJson(steps.analysis.outputs.db-locations).java }} if [[ ! -d $JAVA_DB ]] || [[ ! $JAVA_DB == ${{ runner.temp }}/customDbLocation/* ]]; then echo "Did not create a database for Java, or created it in the wrong location." exit 1 fi JAVASCRIPT_DB=${{ fromJson(steps.analysis.outputs.db-locations).javascript }} if [[ ! -d $JAVASCRIPT_DB ]] || [[ ! $JAVASCRIPT_DB == ${{ runner.temp }}/customDbLocation/* ]]; then echo "Did not create a database for Javascript, or created it in the wrong location." exit 1 fi PYTHON_DB=${{ fromJson(steps.analysis.outputs.db-locations).python }} if [[ ! -d $PYTHON_DB ]] || [[ ! $PYTHON_DB == ${{ runner.temp }}/customDbLocation/* ]]; then echo "Did not create a database for Python, or created it in the wrong location." exit 1 fi RUBY_DB=${{ fromJson(steps.analysis.outputs.db-locations).ruby }} if [[ ! -d $RUBY_DB ]] || [[ ! $RUBY_DB == ${{ runner.temp }}/customDbLocation/* ]]; then echo "Did not create a database for Ruby, or created it in the wrong location." exit 1 fi - name: Check language autodetect for Swift on macOS if: runner.os == 'macOS' shell: bash run: | SWIFT_DB=${{ fromJson(steps.analysis.outputs.db-locations).swift }} if [[ ! -d $SWIFT_DB ]] || [[ ! $SWIFT_DB == ${{ runner.temp }}/customDbLocation/* ]]; then echo "Did not create a database for Swift, or created it in the wrong location." exit 1 fi