Bump eslint and @types/eslint #4663
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: | |
workflow_call: | |
pull_request: | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: pnpm | |
- name: Install dependencies | |
run: pnpm install | |
- name: Run lint | |
run: pnpm run lint | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: pnpm | |
- name: Install dependencies | |
run: pnpm install | |
- name: Run build | |
run: | | |
pnpm run build | |
# remove dev dependencies to mimic a user installing the package | |
rm -rf node_modules | |
pnpm install --prod | |
# ensure we can run it | |
dist/main.js | |
test: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: pnpm | |
- name: Install dependencies | |
run: pnpm install | |
- name: Run tests | |
run: pnpm run test | |
dependabot: | |
needs: [lint, build, test] | |
if: github.event_name == 'pull_request' && startsWith(github.head_ref, 'dependabot/npm_and_yarn/') | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
pull-requests: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GH_TOKEN }} | |
fetch-depth: 0 | |
- name: Get dependabot metadata | |
id: metadata | |
uses: dependabot/fetch-metadata@v2 | |
- if: steps.metadata.outputs.dependency-type == 'direct:production' | |
name: Add changeset if missing | |
id: changeset | |
run: | | |
added_files=$(git diff --diff-filter=A --name-only ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}) | |
for filename in $added_files; do | |
if [[ $filename =~ ^\.changeset\/.+\.md$ ]]; then | |
echo "Changeset found: $filename" | |
exit 0 | |
fi | |
done | |
echo "Creating changeset" | |
cat > .changeset/${{ github.event.pull_request.head.sha }}.md <<-EOF | |
--- | |
"ggt": patch | |
--- | |
${{ github.event.pull_request.title }} | |
EOF | |
echo "changeset_added=true" >> $GITHUB_OUTPUT | |
- if: steps.changeset.outputs.changeset_added == 'true' | |
name: Push changeset | |
uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
commit_message: Added changeset | |
- if: steps.changeset.outputs.changeset_added != 'true' | |
name: Merge PR | |
run: gh pr merge --auto --squash "$PR_URL" | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
PR_URL: ${{ github.event.pull_request.html_url }} |