diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml new file mode 100644 index 00000000..861ce68e --- /dev/null +++ b/.github/workflows/format.yml @@ -0,0 +1,38 @@ +name: format +on: [pull_request, workflow_dispatch] +jobs: + lua: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Check formatting + uses: JohnnyMorganz/stylua-action@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + version: latest + args: --check . + go: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.22 + - name: Run gci + run: | + go install github.com/daixiang0/gci@latest + gci write --skip-generated --skip-vendor -s standard -s default . + working-directory: ./tests/go + - name: Run golines + run: | + go install mvdan.cc/gofumpt@latest + go install github.com/segmentio/golines@latest + golines --base-formatter=gofumpt --ignore-generated --tab-len=1 --max-len=120 --write-output . + working-directory: ./tests/go + - name: Check git diff + run: | + git diff --exit-code + working-directory: ./tests/go diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 6d0663a7..27c16465 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,14 +1,17 @@ name: lint on: [pull_request, workflow_dispatch] jobs: - lua: + go: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Check formatting - uses: JohnnyMorganz/stylua-action@v2 + - name: Set up Go + uses: actions/setup-go@v2 with: - token: ${{ secrets.GITHUB_TOKEN }} - version: latest - args: --check . + go-version: 1.22 + - name: Run golangci-lint + run: | + go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest + golangci-lint run ./... + working-directory: ./tests/go diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d76b68c4..c7704f39 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,3 +23,15 @@ jobs: ln -s $(pwd) ~/.local/share/nvim/site/pack/vendor/start - name: Run tests run: nvim --headless -c "PlenaryBustedDirectory test {minimal_init = 'tests/minimal_init.lua', sequential = true}" + go: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.22 + - name: Check tests + run: go test ./... + working-directory: ./tests/go diff --git a/.github/workflows/vuln.yml b/.github/workflows/vuln.yml new file mode 100644 index 00000000..2a58045c --- /dev/null +++ b/.github/workflows/vuln.yml @@ -0,0 +1,31 @@ +name: vuln +on: [pull_request, workflow_dispatch] +jobs: + lua: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Check formatting + uses: JohnnyMorganz/stylua-action@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + version: latest + args: --check . + go: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.22 + - name: Go vet (vulnerabilities) + run: go vet ./... + working-directory: ./tests/go + - name: Run gosec (security) + run: | + go install github.com/securego/gosec/v2/cmd/gosec@latest + gosec ./... + working-directory: ./tests/go