From 00adcb9607c304be8c31ab240555516063cebb99 Mon Sep 17 00:00:00 2001 From: David Sanders Date: Mon, 2 Dec 2024 23:41:26 -0800 Subject: [PATCH] ci: switch to GHA --- .circleci/config.yml | 35 ---------------------------- .github/workflows/release.yml | 35 ++++++++++++++++++++++++++++ .github/workflows/test.yml | 43 +++++++++++++++++++++++++++++++++++ README.md | 2 +- jest.config.js | 3 ++- package.json | 3 +++ 6 files changed, 84 insertions(+), 37 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 4cabd9f..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,35 +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: - executor: node/macos - name: test-mac-<< matrix.node-version >> - override-ci-command: yarn install --frozen-lockfile --ignore-engines - test-steps: - - node/install-rosetta - - run: yarn build - - run: yarn lint - - run: yarn test - use-test-steps: true - matrix: - alias: test - parameters: - node-version: - - 20.5.0 - - 18.17.0 - - 16.20.1 - - 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..a4b607d --- /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@4e8a2573eeb706f6d7300d6a9f3ca6322740b72d # v1.0.5 + 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..1ffef9e --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,43 @@ +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: + - '20.5' + - '18.17' + - '16.20' + runs-on: macos-latest + 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 (Node.js v18+) + if : ${{ matrix.node-version != '16.20' }} + run: yarn install --frozen-lockfile + - name: Install (Node.js < v18) + if : ${{ matrix.node-version == '16.20' }} + run: yarn install --frozen-lockfile --ignore-engines + - name: Build + run: yarn build + - name: Lint + run: yarn lint + - name: Test + run: yarn test diff --git a/README.md b/README.md index 7afd3ef..fd8dbab 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ > Create universal macOS Electron applications -[![CircleCI](https://circleci.com/gh/electron/universal/tree/main.svg?style=shield)](https://circleci.com/gh/electron/universal) +[![Test](https://github.com/electron/universal/actions/workflows/test.yml/badge.svg)](https://github.com/electron/universal/actions/workflows/test.yml) [![NPM package](https://img.shields.io/npm/v/@electron/universal)](https://npm.im/@electron/universal) ## Usage diff --git a/jest.config.js b/jest.config.js index bfd0093..e76956f 100644 --- a/jest.config.js +++ b/jest.config.js @@ -10,5 +10,6 @@ module.exports = { } ] }, - globalSetup: './jest.setup.ts' + globalSetup: './jest.setup.ts', + testTimeout: 10000, }; \ No newline at end of file diff --git a/package.json b/package.json index 38b854b..ae69ce1 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,9 @@ "README.md" ], "author": "Samuel Attard", + "publishConfig": { + "provenance": true + }, "scripts": { "build": "tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && tsc -p tsconfig.entry-asar.json", "build:docs": "npx typedoc",