Skip to content

test(real-world): run all recommended rules #69

test(real-world): run all recommended rules

test(real-world): run all recommended rules #69

name: Build, test, publish
on:
push:
branches:
- main
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
jobs:
build_and_test:
runs-on: ubuntu-latest
outputs:
current_version: ${{ steps.version_check.outputs.current_version }}
previous_version: ${{ steps.version_check.outputs.previous_version }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '23.9.0'
cache: 'yarn'
- name: Install dependencies
run: yarn install --immutable
- name: Lint
run: yarn lint
- name: Build
run: yarn build
- name: Test
run: yarn test
- name: Upload dist artifact
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
- name: Check version
id: version_check
run: |
sudo apt-get install -y jq
echo "current_version=$(jq -r .version package.json)" >> $GITHUB_OUTPUT
echo "previous_version=$(yarn npm info $(jq -r .name package.json) -f version --json | jq -r .version)" >> $GITHUB_OUTPUT
publish:
runs-on: ubuntu-latest
needs: build_and_test
if: ${{ needs.build_and_test.outputs.current_version != needs.build_and_test.outputs.previous_version }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '23.9.0'
cache: 'yarn'
- name: Download dist artifact
uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- name: Publish to npm
run: yarn npm publish --access public