name: nf-core linting # This workflow is triggered on pushes and PRs to the repository. # It runs the `nf-core lint` and markdown lint tests to ensure # that the code meets the nf-core guidelines. on: push: branches: - dev pull_request: release: types: [published] jobs: EditorConfig: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 - name: Install editorconfig-checker run: npm install -g editorconfig-checker - name: Run ECLint check run: editorconfig-checker -exclude README.md $(find .* -type f | grep -v '.git\|.py\|.md\|json\|yml\|yaml\|html\|css\|work\|.nextflow\|build\|nf_core.egg-info\|log.txt\|Makefile') Prettier: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 - name: Install Prettier run: npm install -g prettier - name: Run Prettier --check run: prettier --check ${GITHUB_WORKSPACE} PythonBlack: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Check code lints with Black uses: psf/black@stable # If the above check failed, post a comment on the PR explaining the failure - name: Post PR comment if: failure() uses: mshick/add-pr-comment@v1 with: message: | ## Python linting (`black`) is failing To keep the code consistent with lots of contributors, we run automated code consistency checks. To fix this CI test, please run: * Install [`black`](https://black.readthedocs.io/en/stable/): `pip install black` * Fix formatting errors in your pipeline: `black .` Once you push these changes the test should pass, and you can hide this comment :+1: We highly recommend setting up Black in your code editor so that this formatting is done automatically on save. Ask about it on Slack for help! Thanks again for your contribution! repo-token: ${{ secrets.GITHUB_TOKEN }} allow-repeats: false nf-core: runs-on: ubuntu-latest steps: - name: Check out pipeline code uses: actions/checkout@v3 - name: Install Nextflow uses: nf-core/setup-nextflow@v1 - uses: actions/setup-python@v4 with: python-version: "3.8" architecture: "x64" - name: Install dependencies run: | python -m pip install --upgrade pip pip install nf-core - name: Run nf-core lint env: GITHUB_COMMENTS_URL: ${{ github.event.pull_request.comments_url }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_PR_COMMIT: ${{ github.event.pull_request.head.sha }} run: nf-core -l lint_log.txt lint --dir ${GITHUB_WORKSPACE} --markdown lint_results.md - name: Save PR number if: ${{ always() }} run: echo ${{ github.event.pull_request.number }} > PR_number.txt - name: Upload linting log file artifact if: ${{ always() }} uses: actions/upload-artifact@v3 with: name: linting-logs path: | lint_log.txt lint_results.md PR_number.txt