diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 00000000..83bf884a --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,51 @@ +name: "lint" + +on: + pull_request: + types: ["opened", "reopened", "synchronize"] + push: + schedule: + # Run daily at 00:15 UTC (the 15 is to avoid periods of high load) + - cron: "15 0 * * *" + workflow_dispatch: + +permissions: + # So the workflow can cancel in-progress jobs + contents: "write" + +concurrency: + group: "${{github.workflow}}-${{github.ref}}" + # Cancel in-progress jobs for efficiency + cancel-in-progress: true + +jobs: + lint: + strategy: + matrix: + os: ["macos-latest", "ubuntu-latest"] + runs-on: "${{matrix.os}}" + steps: + - uses: "actions/checkout@v4" + with: + submodules: "recursive" + + - uses: "actions/setup-python@v5" + with: + python-version: "3.8" + + - name: "Install task" + run: "npm install -g @go-task/cli" + + - if: "matrix.os == 'macos-latest'" + name: "Install coreutils (for md5sum)" + run: "brew install coreutils" + + - name: "Log tool versions" + run: |- + md5sum --version + python --version + tar --version + task --version + + - name: "Run lint task" + run: "task lint:check"