UNPKG

@putout/plugin-github

Version:
314 lines (246 loc) β€’ 7.96 kB
# @putout/plugin-github [![NPM version][NPMIMGURL]][NPMURL] [NPMIMGURL]: https://img.shields.io/npm/v/@putout/plugin-github.svg?style=flat&longCache=true [NPMURL]: https://npmjs.org/package/@putout/plugin-github "npm" > Automate, customize, and execute your software development workflows right in your repository with **GitHub Actions**. > > (c) [github.com](https://docs.github.com/en/actions) 🐊[**Putout**](https://github.com/coderaiser/putout) plugin helps with [**Github Actions**](https://github.com/features/actions). ## Install ``` npm i @putout/plugin-github -D ``` ## Rules - βœ… [add-continue-on-error-to-add-and-commit](#add-continue-on-error-to-add-and-commit); - βœ… [add-continue-on-error-to-coveralls](#add-continue-on-error-to-coveralls); - βœ… [add-property.js](#add-property.js); - βœ… [convert-npm-to-bun](#convert-npm-to-bun); - βœ… [convert-typos-to-typos-ai](#convert-typos-to-typos-ai); - βœ… [insert-rust](#insert-rust); - βœ… [install-bun](#install-bun); - βœ… [set-node-versions](#set-node-versions); - βœ… [set-message-of-commit-fixes](#set-message-of-commit-fixes); - βœ… [update-actions](#update-actions); ## Config ```json { "rules": { "github/add-continue-on-error-to-coveralls": "on", "github/add-continue-on-error-to-add-and-commit": "on", "github/convert-npm-to-bun": "on", "github/convert-typos-to-typos-ai": "on", "github/set-node-versions": "on", "github/set-message-of-commit-fixes": "on", "github/install-bun": "on", "github/install-rust": "on", "github/update-actions": "on" } } ``` ## add-continue-on-error-to-coveralls Add ability to continue when cannot submit coverage to Coveralls using [`continue-on-error`](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error). ```diff - name: Commit fixes continue-on-error: true uses: EndBug/add-and-commit@v10 with: fetch: --force message: "chore: ${{ env.NAME }}: actions: lint ☘️" pull: --rebase --autostash + continue-on-error: true ``` ## add-continue-on-error-to-coveralls Add ability to continue when cannot submit coverage to Coveralls using [`continue-on-error`](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error). ```diff - name: Coveralls uses: coverallsapp/github-action@v2 with: github-token: ${{ secrets.GITHUB_TOKEN }} + continue-on-error: true ``` ## set-message-of-commit-fixes Checkout in 🐊[**Putout Editor**](https://putout.cloudcmd.io/#/gist/0379415220b31bbbab2d29c155b5b7eb/08839962bed379f7169e05a30ae5e082d9731c75). ```diff uses: EndBug/add-and-commit@v9 continue-on-error: true with: - message: chore(${{ env.NAME }}) lint using actions + message: "chore: ${{ env.NAME }}: actions: lint ☘️" ``` You can override message with: ```json { "rules": { "github/set-message-of-commit-fixes": ["on", { "message": "βœ… fixed with github actions" }] } } ``` ## set-node-versions ```diff jobs: build: runs-on: ubuntu-latest strategy: matrix: - node-version: [20.x, 22.x, 24.x] + node-version: [22.x, 24.x, 26.x] ``` You can override versions with: ```json { "rules": { "github/set-node-versions": ["on", { "versions": [ "16.x", "18.x", "20.x", "25.x" ] }] } } ``` ## update-actions `coverallsapp/github-action@master`: ```diff - name: Coveralls - uses: coverallsapp/github-action@master + uses: coverallsapp/github-action@v2 ``` `docker/login-action`: ```diff - name: Login to Docker Hub - uses: docker/login-action@v2 + uses: docker/login-action@v4 ``` `docker/build-push`: ```diff - name: Build and push alpine-image - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v7 ``` `docker/setup-buildx`: ```diff - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v4 ``` `actions/checkout`: ```diff steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 ``` `actions/cache`: ```diff steps: - - uses: actions/cache@v4 + - uses: actions/checkout@v5 ``` `actions/setup-node`: ```diff steps: - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v3 ``` `docker/setup-quemu`: ```diff steps: - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v4 ``` `EndBug/add-and-commit`: ```diff steps: - uses: EndBug/add-and-commit@v7 + uses: EndBug/add-and-commit@v9 ``` `oven-sh/setup-bun@v1`: ```diff steps: - uses: oven-sh/setup-bun@v1 + uses: oven-sh/setup-bun@v2 ``` ## install-bun > Bun is an all-in-one toolkit for JavaScript and TypeScript apps. It ships as a single executable called bun. > > At its core is the Bun runtime, a fast JavaScript runtime designed as a drop-in replacement for Node.js. It's written in Zig and powered by JavaScriptCore under the hood, dramatically reducing startup times and memory usage. > > (c) [bun.sh](https://bun.sh). Checkout in 🐊[**Putout Editor**](https://putout.cloudcmd.io/#/gist/2d10cb903c532df454a8dfd6de2780c3/ee6b347faef340f20b7c1aa53564f72572c493df). ```diff steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} + - uses: oven-sh/setup-bun@v2 + with: + bun-version: latest ``` ## install-rust > A language empowering everyone to build reliable and efficient software. > > (c) [Rust](https://rust-lang.orgh). Checkout in 🐊[**Putout Editor**](https://putout.cloudcmd.io/#/gist/ad1fbd14cf16ce2e0ebf768fbfc07387/ec47bc0fe622b0001070c871e423979f7d29cbfb). ```diff steps: - uses: actions-rs/toolchain@v1 with: toolchain: stable + - name: Install Rust + run: runstup update ``` ## install-bun > Bun is an all-in-one toolkit for JavaScript and TypeScript apps. It ships as a single executable called bun. > > At its core is the Bun runtime, a fast JavaScript runtime designed as a drop-in replacement for Node.js. It's written in Zig and powered by JavaScriptCore under the hood, dramatically reducing startup times and memory usage. > > (c) [bun.sh](https://bun.sh). Bun install works much faster: 40s before - 2s after. Checkout in 🐊[**Putout Editor**](https://putout.cloudcmd.io/#/gist/e03cc6ff4d9927568dc4f6f608be10ef/52146f4cbbc02c5bc8d7242af94d37f8734b3b36). ```diff - name: Install Redrun - run: npm i redrun -g + run: bun i redrun -g --no-save - name: Install - run: npm install + run: bun i --no-save ``` ## convert-typos-to-typos-ai Use [typos.ai](https://github.com/coderaiser/typos.ai) action, it is much simpler and also clever. Checkout in 🐊[**Putout Editor**](https://putout.cloudcmd.io/#/gist/05457ee0a03ac861e0a12a35ce1f78db/8195c4f3c8ee83be9d9b33756ea329cfc688d7c4). ```diff - - name: Install Rust - run: rustup update - - uses: actions/cache@v5 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - name: Typos Install - run: which typos || cargo install typos-cli - name: Typos - run: typos --write-changes + uses: coderaiser/typos.ai@v1.1.8 + with: + key: ${{ secrets.TYPOS_AI_KEY }} ``` ## convert-npm-to-bun ```diff - name: Install Redrun - run: npm install redrun -g --no-save + run: bun install redrun -g --no-save - name: Install - run: npm i -f --no-save + run: bun i -f --no-save ``` ## License MIT