name: "Go: Run Tests" on: [pull_request] jobs: test-linux: name: Test Linux (Ubuntu) runs-on: ubuntu-latest steps: - name: Set up Go 1.18.1 uses: actions/setup-go@v1 with: go-version: 1.18.1 id: go - name: Set up CodeQL CLI run: | echo "Removing old CodeQL Directory..." rm -rf $HOME/codeql echo "Done" cd $HOME echo "Downloading CodeQL CLI..." LATEST=$(gh release list --repo https://github.com/github/codeql-cli-binaries | cut -f 1 | sort --version-sort | grep -v beta | tail -1) gh release download --repo https://github.com/github/codeql-cli-binaries --pattern codeql-linux64.zip "$LATEST" echo "Done" echo "Unpacking CodeQL CLI..." unzip -q codeql-linux64.zip rm -f codeql-linux64.zip echo "Done" env: GITHUB_TOKEN: ${{ github.token }} - name: Check out code uses: actions/checkout@v2 - name: Enable problem matchers in repository shell: bash run: 'find .github/problem-matchers -name \*.json -exec echo "::add-matcher::{}" \;' - name: Build run: | cd go env PATH=$PATH:$HOME/codeql make - name: Check that all QL and Go code is autoformatted run: | cd go env PATH=$PATH:$HOME/codeql make check-formatting - name: Compile qhelp files to markdown run: | cd go env PATH=$PATH:$HOME/codeql QHELP_OUT_DIR=qhelp-out make qhelp-to-markdown - name: Upload qhelp markdown uses: actions/upload-artifact@v2 with: name: qhelp-markdown path: go/qhelp-out/**/*.md - name: Test run: | cd go env PATH=$PATH:$HOME/codeql make test test-mac: name: Test MacOS runs-on: macOS-latest steps: - name: Set up Go 1.18.1 uses: actions/setup-go@v1 with: go-version: 1.18.1 id: go - name: Set up CodeQL CLI run: | echo "Removing old CodeQL Directory..." rm -rf $HOME/codeql echo "Done" cd $HOME echo "Downloading CodeQL CLI..." LATEST=$(gh release list --repo https://github.com/github/codeql-cli-binaries | cut -f 1 | sort --version-sort | grep -v beta | tail -1) gh release download --repo https://github.com/github/codeql-cli-binaries --pattern codeql-osx64.zip "$LATEST" echo "Done" echo "Unpacking CodeQL CLI..." unzip -q codeql-osx64.zip rm -f codeql-osx64.zip echo "Done" env: GITHUB_TOKEN: ${{ github.token }} - name: Check out code uses: actions/checkout@v2 - name: Enable problem matchers in repository shell: bash run: 'find .github/problem-matchers -name \*.json -exec echo "::add-matcher::{}" \;' - name: Build run: | cd go env PATH=$PATH:$HOME/codeql make - name: Test run: | cd go env PATH=$PATH:$HOME/codeql make test test-win: name: Test Windows runs-on: windows-2019 steps: - name: Set up Go 1.18.1 uses: actions/setup-go@v1 with: go-version: 1.18.1 id: go - name: Set up CodeQL CLI run: | echo "Removing old CodeQL Directory..." rm -rf $HOME/codeql echo "Done" cd "$HOME" echo "Downloading CodeQL CLI..." LATEST=$(gh release list --repo https://github.com/github/codeql-cli-binaries | cut -f 1 | sort --version-sort | grep -v beta | tail -1) gh release download --repo https://github.com/github/codeql-cli-binaries --pattern codeql-win64.zip "$LATEST" echo "Done" echo "Unpacking CodeQL CLI..." unzip -q -o codeql-win64.zip unzip -q -o codeql-win64.zip codeql/codeql.exe rm -f codeql-win64.zip echo "Done" env: GITHUB_TOKEN: ${{ github.token }} shell: bash - name: Check out code uses: actions/checkout@v2 - name: Enable problem matchers in repository shell: bash run: 'find .github/problem-matchers -name \*.json -exec echo "::add-matcher::{}" \;' - name: Build run: | $Env:Path += ";$HOME\codeql" cd go make - name: Test run: | $Env:Path += ";$HOME\codeql" cd go make test