From 96870f17963d4ce81eb4aea33d7d10221da70eaf Mon Sep 17 00:00:00 2001 From: David Sanders Date: Thu, 7 Nov 2024 17:54:50 -0800 Subject: [PATCH] ci: switch to GHA --- .circleci/config.yml | 34 ---------------------------- .github/workflows/release.yml | 35 +++++++++++++++++++++++++++++ .github/workflows/test.yml | 42 +++++++++++++++++++++++++++++++++++ README.md | 4 ++-- package.json | 3 +++ 5 files changed, 82 insertions(+), 36 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/test.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 37ec9c7..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,34 +0,0 @@ -version: 2.1 - -orbs: - cfa: continuousauth/npm@2.1.1 - node: electronjs/node@2.3.1 - -workflows: - test_and_release: - # Run the test jobs first, then the release only when all the test jobs are successful - jobs: - - node/test: - name: test-<< matrix.executor >>-<< matrix.node-version >> - test-steps: - - run: yarn prettier:check - - run: yarn test - use-test-steps: true - matrix: - alias: test - parameters: - executor: - - node/linux - - node/macos - - node/windows - node-version: - - '22.9' - - '20.11' - - cfa/release: - requires: - - test - filters: - branches: - only: - - main - context: cfa-release diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..4151940 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,35 @@ +name: Release + +on: + push: + branches: + - main + +jobs: + test: + uses: ./.github/workflows/test.yml + + release: + name: Release + runs-on: ubuntu-latest + needs: test + environment: npm + permissions: + id-token: write # for CFA and npm provenance + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + persist-credentials: false + - name: Setup Node.js + uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + with: + node-version: 20.x + cache: 'yarn' + - name: Install + run: yarn install --frozen-lockfile + - uses: continuousauth/action@c32f05c950d4e6f4abd8d1d8a46269525e2dbf55 # v1.0.3 + with: + project-id: ${{ secrets.CFA_PROJECT_ID }} + secret: ${{ secrets.CFA_SECRET }} + npm-token: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..bb06700 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,42 @@ +name: Test + +on: + pull_request: + branches: + - main + schedule: + - cron: '0 22 * * 3' + workflow_call: + +permissions: + contents: read + +jobs: + test: + name: Test + strategy: + matrix: + node-version: + - '22.9' + - '20.11' + os: + - macos-latest + - ubuntu-latest + - windows-latest + runs-on: "${{ matrix.os }}" + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: Setup Node.js + uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + with: + node-version: "${{ matrix.node-version }}" + cache: 'yarn' + - name: Install + run: yarn install --frozen-lockfile + - name: Build + run: yarn build + - name: Lint + run: yarn prettier:check + - name: Test + run: yarn test diff --git a/README.md b/README.md index 9182706..c6f8a24 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ This module uses Electron's [JSON API documentation](https://github.com/electron/docs-parser) to produce a TypeScript definition file for the Electron API. -[![CircleCI](https://dl.circleci.com/status-badge/img/gh/electron/typescript-definitions/tree/main.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/electron/typescript-definitions/tree/main) +[![Test](https://github.com/electron/typescript-definitions/actions/workflows/test.yml/badge.svg)](https://github.com/electron/typescript-definitions/actions/workflows/test.yml) [![npm version](http://img.shields.io/npm/v/@electron/typescript-definitions.svg)](https://npmjs.org/package/@electron/typescript-definitions) ## Installation @@ -33,7 +33,7 @@ import { generateDefinitions } from '@electron/typescript-definitions' const apiPath = './vendor/electron/docs/api.json' const definitionLines = generateDefinitions({ electronApi: loadJSON(apiPath) }) -// definitionLines will be an strin representation of the definition file +// definitionLines will be an string representation of the definition file ``` ## License diff --git a/package.json b/package.json index 8721c35..f547df2 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,9 @@ "homepage": "https://www.samuelattard.com" }, "license": "MIT", + "publishConfig": { + "provenance": true + }, "devDependencies": { "@electron/docs-parser": "^2.0.0", "@types/debug": "^4.1.12",