Skip to content

Commit

Permalink
feat(gh-actions): automatic linting and publishing
Browse files Browse the repository at this point in the history
  • Loading branch information
z0rrn committed Mar 9, 2024
1 parent 39771c3 commit 78e0d7e
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 0 deletions.
16 changes: 16 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for more information:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
# https://containers.dev/guide/dependabot

version: 2
updates:
- package-ecosystem: "devcontainers"
directory: "/"
schedule:
interval: weekly
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: weekly
71 changes: 71 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Lint and publish to npmjs

on:
push:
# no run on dependabot branches
branches:
- "**"
- "!dependabot/**"
# publish on tags
tags:
- "v**"
pull_request:
workflow_dispatch:

env:
# tool versions
BUN_VERSION: 1.0.30 # used for linting
NODE_LTS_VERSION: 20 # used for publishing

permissions:
# npm provenance: mint an ID-token
id-token: write

jobs:
lint:
name: Lint (Xo and Prettier)
runs-on: ubuntu-latest

steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Set up Bun.sh
uses: oven-sh/setup-bun@v1
with:
bun-version: ${{ env.BUN_VERSION }}

- name: Install dependencies (no change to bun.lockb)
run: bun install --frozen-lockfile

- name: Lint
run: bun run lint

publish:
name: Publish on npmjs
if: github.repository == 'z0rrn/hugo-install' && startsWith(github.ref, 'refs/tags/')
needs: [lint]
runs-on: ubuntu-latest

steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Set up Bun.sh
uses: oven-sh/setup-bun@v1
with:
bun-version: ${{ env.BUN_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_LTS_VERSION }}
registry-url: "https://registry.npmjs.org"

- name: Install dependencies (no change to bun.lockb)
run: bun install --frozen-lockfile

- name: Publish on npm
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}

0 comments on commit 78e0d7e

Please sign in to comment.