feat: completely rework package (#266) #362
This file contains 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
name: "CI" | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
workflow_dispatch: | |
jobs: | |
lint: | |
name: "Lint" | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Checkout" | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: 'Enable corepack' | |
run: corepack enable | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
cache: 'yarn' | |
- name: "Install dependencies" | |
run: yarn install --immutable | |
- name: "Lint" | |
run: yarn lint -f @react-hookz/gha | |
build: | |
name: "Build" | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Checkout" | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: 'Enable corepack' | |
run: corepack enable | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
cache: 'yarn' | |
- name: "Install dependencies" | |
run: yarn install --immutable | |
- name: "Build" | |
run: yarn build | |
test: | |
name: "Test" | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Checkout" | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: 'Enable corepack' | |
run: corepack enable | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
cache: 'yarn' | |
- name: "Install dependencies" | |
run: yarn install --immutable | |
- name: "Test" | |
run: yarn test:coverage --run --reporter='github-actions' --reporter='junit' --outputFile='./coverage/test-report.junit.xml --reporter=default' | |
- name: "Upload coverage to Codecov" | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: coverage/test-report.junit.xml | |
fail_ci_if_error: true | |
dependabot-merge: | |
name: "Dependabot automerge" | |
runs-on: ubuntu-latest | |
permissions: | |
pull-requests: write | |
contents: write | |
needs: [ "test", "build", "lint" ] | |
if: github.actor == 'dependabot[bot]' && github.event_name == 'pull_request' | |
steps: | |
- uses: fastify/github-action-merge-dependabot@v3 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
semantic-release: | |
name: "Release" | |
runs-on: ubuntu-latest | |
needs: [ "test", "build", "lint" ] | |
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' | |
outputs: | |
new-release-published: ${{ steps.release.outputs.new-release-published }} | |
steps: | |
- name: "Checkout" | |
uses: actions/checkout@v4 | |
with: | |
ref: "master" | |
- name: 'Enable corepack' | |
run: corepack enable | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
cache: 'yarn' | |
- name: Install dependencies | |
run: yarn install --immutable | |
- name: "Build" | |
run: yarn build | |
- name: "Release" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: yarn semantic-release | |
gen-contributors: | |
name: "Generate Contributors List" | |
runs-on: ubuntu-latest | |
needs: [ "test", "build", "lint", "semantic-release" ] | |
if: github.event_name == 'push' | |
permissions: | |
contents: write | |
steps: | |
- name: Contribute List | |
uses: akhilmhdh/[email protected] | |
with: | |
image_size: 100 | |
columns_per_row: 8 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |