--- name: 'lint' # yamllint disable-line rule:truthy on: pull_request: branches: - '*' push: branches: - 'master' concurrency: group: lint-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: hadolint: name: hadolint runs-on: ubuntu-24.04 steps: - name: Clone uses: actions/checkout@v7 - name: Run hadolint uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.0.0 => 4b5806eb9c6bee4954fc0e0cc3ad6175fc9782c1 markdown-lint: name: markdown-lint runs-on: ubuntu-24.04 steps: - name: Clone uses: actions/checkout@v7 - name: Setup node uses: actions/setup-node@v7 with: node-version: '20' cache: 'npm' cache-dependency-path: '.github/workflows/lint.yml' - name: Install markdownlint-cli run: npm install -g markdownlint-cli@0.35.0 - name: Run markdown-lint run: markdownlint -c .github/linters/.markdown-lint.yml *.md **/*.md packer: name: packer runs-on: ubuntu-24.04 if: github.event.pull_request.user.login != 'dependabot[bot]' steps: - name: Checkout code uses: actions/checkout@v7 - name: Setup packer uses: hashicorp/setup-packer@main with: version: latest - name: Run packer init run: "make image/init/digitalocean" env: PACKER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Run `packer validate` env: DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }} run: "make image/validate/digitalocean" shellcheck: name: shellcheck runs-on: ubuntu-24.04 steps: - name: Clone uses: actions/checkout@v7 - name: Run shellcheck uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # 1.1.0 => 94e0aab03ca135d11a35e5bfc14e6746dc56e7e9 shfmt: name: shfmt runs-on: ubuntu-24.04 steps: - name: Clone uses: actions/checkout@v7 - name: Run shfmt uses: luizm/action-sh-checker@883217215b11c1fabbf00eb1a9a041f62d74c744 # v0.5.0 => edd0e45ecff35b05f162052b50df50976c1b74fc env: SHFMT_OPTS: -l -bn -ci -i 2 -d with: sh_checker_shellcheck_disable: true yamllint: name: yamllint runs-on: ubuntu-24.04 steps: - name: Clone uses: actions/checkout@v7 - name: Run yamllint uses: ibiqlik/action-yamllint@2576378a8e339169678f9939646ee3ee325e845c # v3.1.1 => 2576378a8e339169678f9939646ee3ee325e845c with: config_file: '.github/linters/.yamllint.yml'