diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..aee50b9 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,2 @@ +github: modernweb-dev +open_collective: modern-web diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..ded6252 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,12 @@ +# 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 all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "npm" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" + day: "thursday" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..7aae921 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,29 @@ +name: Lint + +on: pull_request + +env: + FORCE_COLOR: true + +jobs: + linux: + timeout-minutes: 30 + name: Linux + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Setup Node 20 + uses: actions/setup-node@v4 + env: + FORCE_COLOR: 0 + with: + node-version: 20 + cache: npm + + - name: Install Dependencies + run: npm ci + + - name: Lint + run: npm run lint diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..1a2499d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,25 @@ +name: Publish + +on: + release: + types: [created] + +jobs: + publish-npm: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + registry-url: https://registry.npmjs.org/ + cache: npm + - run: npm ci + - run: npm test + - run: npm run build + - run: npm version ${TAG_NAME} --git-tag-version=false + env: + TAG_NAME: ${{ github.event.release.tag_name }} + - run: npm whoami; npm --ignore-scripts publish + env: + NODE_AUTH_TOKEN: ${{secrets.npm_token}} diff --git a/.github/workflows/verify-node.yml b/.github/workflows/verify-node.yml new file mode 100644 index 0000000..a5a3083 --- /dev/null +++ b/.github/workflows/verify-node.yml @@ -0,0 +1,70 @@ +name: Node tests + +on: pull_request + +env: + FORCE_COLOR: true + +jobs: + verify-linux: + timeout-minutes: 30 + name: Linux + runs-on: ubuntu-latest + strategy: + matrix: + node-version: + - '18' + - '20' + - 'latest' + + steps: + - uses: actions/checkout@v4 + + - name: Setup Node ${{ matrix.node-version }} + uses: actions/setup-node@v4 + env: + FORCE_COLOR: 0 + with: + node-version: ${{ matrix.node-version }} + cache: npm + + - name: Install Dependencies + run: npm ci + + - name: Build packages + run: npm run build + + - name: Build types for js packages + run: npm run types + + - name: Test + run: npm run test + + verify-windows: + timeout-minutes: 30 + name: Windows + runs-on: windows-2022 + steps: + - name: Set git to use LF + run: | + git config --global core.autocrlf false + git config --global core.eol lf + + - uses: actions/checkout@v4 + + - name: Setup Node '20' + uses: actions/setup-node@v4 + env: + FORCE_COLOR: 0 + with: + node-version: '20' + cache: 'npm' + + - name: Install Dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Test + run: npm run test