ci(run-tests): refactor run-tests.sh and add linter checks #443
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # This file is part of REANA. | |
| # Copyright (C) 2022, 2023, 2024, 2025 CERN. | |
| # | |
| # REANA is free software; you can redistribute it and/or modify it | |
| # under the terms of the MIT License; see LICENSE file for more details | |
| name: ci | |
| on: [push, pull_request] | |
| jobs: | |
| shell-completions: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.25.8" | |
| - name: Check shell completions are up-to-date | |
| run: ./run-tests.sh --shell-completions | |
| format-go: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.25.8" | |
| - name: Check Go code formatting | |
| run: ./run-tests.sh --format-go | |
| format-prettier: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| - name: Check Prettier code formatting | |
| run: | | |
| npm install prettier --global | |
| ./run-tests.sh --format-prettier | |
| format-shfmt: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Check shell script code formatting | |
| run: | | |
| sudo apt-get install shfmt | |
| ./run-tests.sh --format-shfmt | |
| go-tests: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.25.8" | |
| - name: Run Go test suite | |
| run: ./run-tests.sh --go-tests | |
| - name: Codecov Coverage | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| lint-commitlint: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| - name: Install commitlint | |
| run: | | |
| npm install conventional-changelog-conventionalcommits | |
| npm install commitlint@latest | |
| - name: Check commit message compliance of the recently pushed commit | |
| if: github.event_name == 'push' | |
| run: | | |
| ./run-tests.sh --lint-commitlint HEAD~1 HEAD | |
| - name: Check commit message compliance of the pull request | |
| if: github.event_name == 'pull_request' | |
| run: | | |
| ./run-tests.sh --lint-commitlint ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} ${{ github.event.pull_request.number }} | |
| lint-goaudit: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.25.8" | |
| - name: Run Go audit checks | |
| run: ./run-tests.sh --lint-goaudit | |
| lint-markdownlint: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| - name: Lint Markdown files | |
| run: | | |
| npm install markdownlint-cli2 --global | |
| ./run-tests.sh --lint-markdownlint | |
| lint-shellcheck: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Runs shell script static analysis | |
| run: | | |
| sudo apt-get install shellcheck | |
| ./run-tests.sh --lint-shellcheck | |
| lint-yamllint: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Lint YAML files | |
| run: | | |
| pip install yamllint | |
| ./run-tests.sh --lint-yamllint |