Skip to content

Fix shebang++ default interpreter "cat" when language is unknown #1591

Fix shebang++ default interpreter "cat" when language is unknown

Fix shebang++ default interpreter "cat" when language is unknown #1591

Workflow file for this run

name: ci
on:
push:
branches:
- main
paths-ignore:
- "**.md"
pull_request:
paths-ignore:
- "**.md"
jobs:
lint:
runs-on: ubuntu-latest
strategy:
matrix:
go: ["1.22"]
name: Lint with Go ${{ matrix.go }}
steps:
- uses: actions/checkout@v4
- name: Setup go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
- name: Install dependencies
run: make install/dev
# It duplicates running linter from pre-commit
# but as revive is set up differently, we want
# to make sure that `make lint` also works.
- name: Run lint from Makefile
run: make lint
- uses: pre-commit/action@v3.0.0
- name: pre-commit
run: pre-commit run --files $(git diff-tree --no-commit-id --name-only -r HEAD)
build-and-test:
# Don't use make here as this job needs to be cross-platform.
runs-on: ${{ matrix.os }}
strategy:
matrix:
go: ["1.22"]
os: [ubuntu-latest, windows-latest]
name: Build and test with Go ${{ matrix.go }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Setup go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
- name: Setup Node version
uses: actions/setup-node@v4
with:
node-version: 20
- name: Build
run: |
go build -o runme main.go
./runme --version
- name: Test
run: |
export SHELL=/bin/bash
export TZ=UTC
TAGS="test_with_docker" make test
make test/coverage/func
if: ${{ matrix.os == 'ubuntu-latest' }}
- name: Test
run: |
Set-Timezone -Id "UTC" -PassThru
make test
if: ${{ matrix.os == 'windows-latest' }}
- name: Upload coverage
uses: actions/upload-artifact@v4
if: ${{github.actor != 'dependabot[bot]' && matrix.os == 'ubuntu-latest'}}
with:
name: coverage
path: cover.out
if-no-files-found: error
build-and-robustness-test:
name: Test parser against vast amount of READMEs
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node version
uses: actions/setup-node@v4
with:
node-version: 20
- name: Setup go
uses: actions/setup-go@v5
with:
go-version: ">=1.22"
- name: Install dependencies
run: make install/dev
- name: Build
run: |
go build -o runme main.go
./runme --version
- name: Run robustness test
run: make test/robustness
timeout-minutes: 5
- name: 🐛 Debug Build
uses: stateful/vscode-server-action@v1.1.0
if: failure()
with:
timeout: "300000"
sonarcloud:
if: ${{github.actor != 'dependabot[bot]'}}
name: SonarCloud Analysis
runs-on: ubuntu-latest
needs: build-and-test
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Retrieve saved coverage
uses: actions/download-artifact@v4
with:
name: coverage
path: .
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@v2.1.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}