Compare commits

...

18 Commits

Author SHA1 Message Date
Iain Sproat cb85b6cd98 do not release until lint has completed 2025-12-08 21:11:36 +00:00
Iain Sproat 832ab74c5e fix prettier issues 2025-12-08 20:43:41 +00:00
Iain Sproat a37e11a3ba fix concurrency groups 2025-12-08 20:41:57 +00:00
Iain Sproat bd735a8dfd fix by ignoring yarnrc.yml 2025-12-08 20:39:18 +00:00
Iain Sproat 4a5e6c947f fix 2025-12-08 20:30:01 +00:00
Iain Sproat 74b36ab19f newline? 2025-12-08 20:24:12 +00:00
Iain Sproat bb01257890 include newline at EOF 2025-12-08 20:21:53 +00:00
Iain Sproat 3a09c951a0 prettier 2025-12-08 20:14:55 +00:00
Iain Sproat 2a74a552cf Run netlify CLI with build 2025-12-08 20:08:18 +00:00
Iain Sproat 21651e167b add id-token to job permissions 2025-12-08 19:29:46 +00:00
Iain Sproat 0b487a0782 revert omissio of word 2025-12-08 19:28:39 +00:00
Iain Sproat 64c0ae0965 connect to tailscale & pull @speckle/* from private registry 2025-12-08 19:27:09 +00:00
Iain Sproat bc4e40d390 swap position 2025-12-08 18:28:06 +00:00
Iain Sproat 45bb85c360 remove yarnpath 2025-12-08 18:25:02 +00:00
Iain Sproat b03ea1fc54 revert changes to use corepack 2025-12-08 18:24:13 +00:00
Iain Sproat a7b78ed8ae we no longer require the git credentials 2025-12-08 18:11:49 +00:00
Iain Sproat 584180f6b0 use a local yarn rather than global yarn 2025-12-08 18:10:29 +00:00
Iain Sproat a16380503b ci(build): CI can work with configurable npm registry 2025-12-08 18:03:41 +00:00
7 changed files with 241 additions and 45 deletions
+1 -1
View File
@@ -9,4 +9,4 @@ SPECKLE_TOKEN=undefined
SPECKLE_USER_ID=undefined
SPECKLE_URL=undefined
SPECKLE_SAMPLE_PROJECT_ID=undefined
SPECKLE_SAMPLE_MODEL_ID=undefined
SPECKLE_SAMPLE_MODEL_ID=undefined
+75
View File
@@ -0,0 +1,75 @@
name: Linting
on:
workflow_call:
inputs:
NPM_REGISTRY_URL:
required: false
type: string
default: 'https://registry.npmjs.org/'
TAILSCALE_CONNECT_FOR_NPM:
required: false
type: string
default: 'false'
secrets:
TAILSCALE_OAUTH_CLIENT_ID:
required: false
TAILSCALE_OAUTH_CLIENT_AUDIENCE:
required: false
concurrency:
group: ${{ github.workflow }}-linting-${{ github.ref }}
cancel-in-progress: false
permissions: {} # purposefully empty by default at workflow level, explicitly overridden for specific jobs below
jobs:
lint:
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: read
id-token: write # for publishing to npm using OIDC
env:
NPM_REGISTRY_URL: ${{ inputs.NPM_REGISTRY_URL }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Enable Corepack and Install Correct Yarn Version
run: |
corepack enable
corepack prepare "yarn@$(jq -r .packageManager package.json | cut -d'@' -f2)" --activate
yarn --version
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
cache: yarn
- name: Configure auth to npm registry for @speckle packages
if: inputs.TAILSCALE_CONNECT_FOR_NPM == 'true'
run: |
cat <<EOT >> .yarnrc.yml
npmScopes:
"speckle":
npmRegistryServer: "${NPM_REGISTRY_URL}"
EOT
- name: Connect to Tailscale
uses: tailscale/github-action@a392da0a182bba0e9613b6243ebd69529b1878aa
if: inputs.TAILSCALE_CONNECT_FOR_NPM == 'true'
with:
oauth-client-id: ${{ secrets.TAILSCALE_OAUTH_CLIENT_ID }}
audience: ${{ secrets.TAILSCALE_OAUTH_CLIENT_AUDIENCE }}
tags: tag:ci
- name: Install Dependencies
run: yarn install --immutable
- name: Run Linter
run: yarn lint
-44
View File
@@ -1,44 +0,0 @@
name: Linting
on:
pull_request:
branches:
- main
jobs:
lint-and-build:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
- name: Enable Corepack and Install Correct Yarn Version
run: |
corepack enable
corepack prepare yarn@$(jq -r .packageManager package.json | cut -d'@' -f2) --activate
yarn --version
- name: Cache node_modules
uses: actions/cache@v4
with:
path: |
**/node_modules
.yarn/cache
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install Dependencies
run: yarn install --immutable
- name: Run Linter
run: yarn lint
- name: Run generate
run: yarn generate
+80
View File
@@ -0,0 +1,80 @@
name: Pull Request
on:
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-pr-${{ github.ref }}
cancel-in-progress: false
permissions: {} # purposefully empty by default at workflow level, explicitly overridden for specific jobs below
jobs:
lint:
name: Linting
uses: ./.github/workflows/lint.yml
permissions:
contents: read
id-token: write # for connecting to private NPM registry using OIDC Connect
with:
NPM_REGISTRY_URL: ${{ vars.NPM_REGISTRY_URL }}
TAILSCALE_CONNECT_FOR_NPM: ${{ vars.TAILSCALE_CONNECT_FOR_NPM }}
secrets:
TAILSCALE_OAUTH_CLIENT_ID: ${{ secrets.TAILSCALE_OAUTH_CLIENT_ID }}
TAILSCALE_OAUTH_CLIENT_AUDIENCE: ${{ secrets.TAILSCALE_OAUTH_CLIENT_AUDIENCE }}
build:
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: read
id-token: write # for connecting to private NPM registry using OIDC Connect
env:
NPM_REGISTRY_URL: ${{ vars.NPM_REGISTRY_URL }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Enable Corepack and Install Correct Yarn Version
run: |
corepack enable
corepack prepare "yarn@$(jq -r .packageManager package.json | cut -d'@' -f2)" --activate
yarn --version
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
cache: yarn
- name: Configure auth to npm registry for @speckle packages
if: vars.TAILSCALE_CONNECT_FOR_NPM == 'true'
run: |
cat <<EOT >> .yarnrc.yml
npmScopes:
'speckle':
npmRegistryServer: '${NPM_REGISTRY_URL}'
EOT
- name: Connect to Tailscale
uses: tailscale/github-action@a392da0a182bba0e9613b6243ebd69529b1878aa
if: vars.TAILSCALE_CONNECT_FOR_NPM == 'true'
with:
oauth-client-id: ${{ secrets.TAILSCALE_OAUTH_CLIENT_ID }}
audience: ${{ secrets.TAILSCALE_OAUTH_CLIENT_AUDIENCE }}
tags: tag:ci
- name: Install Dependencies
run: yarn install --immutable
- name: Netlify build
uses: netlify/actions/cli@3185065f4ab2f6df6f2ef41ee013626e1c02a426
with:
args: build
env:
{} #TODO
# NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
# NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
+83
View File
@@ -0,0 +1,83 @@
name: Release
on:
push:
branches:
- main
tags:
- '[0-9]+.[0-9]+.[0-9]+'
concurrency:
group: ${{ github.workflow }}-release-${{ github.ref }}
cancel-in-progress: false
permissions: {} # purposefully empty by default at workflow level, explicitly overridden for specific jobs below
jobs:
lint:
name: Linting
uses: ./.github/workflows/lint.yml
permissions:
contents: read
id-token: write # for connecting to private NPM registry using OIDC Connect
with:
NPM_REGISTRY_URL: ${{ vars.NPM_REGISTRY_URL }}
TAILSCALE_CONNECT_FOR_NPM: ${{ vars.TAILSCALE_CONNECT_FOR_NPM }}
secrets:
TAILSCALE_OAUTH_CLIENT_ID: ${{ secrets.TAILSCALE_OAUTH_CLIENT_ID }}
TAILSCALE_OAUTH_CLIENT_AUDIENCE: ${{ secrets.TAILSCALE_OAUTH_CLIENT_AUDIENCE }}
publish:
needs: [lint]
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: read
id-token: write # for connecting to private NPM registry using OIDC Connect
env:
NPM_REGISTRY_URL: ${{ vars.NPM_REGISTRY_URL }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Enable Corepack and Install Correct Yarn Version
run: |
corepack enable
corepack prepare "yarn@$(jq -r .packageManager package.json | cut -d'@' -f2)" --activate
yarn --version
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.14.0'
cache: yarn
- name: Configure auth to npm registry for @speckle packages
if: vars.TAILSCALE_CONNECT_FOR_NPM == 'true'
run: |
cat <<EOT >> .yarnrc.yml
npmScopes:
'speckle':
npmRegistryServer: '${NPM_REGISTRY_URL}'
EOT
- name: Connect to Tailscale
uses: tailscale/github-action@a392da0a182bba0e9613b6243ebd69529b1878aa
if: vars.TAILSCALE_CONNECT_FOR_NPM == 'true'
with:
oauth-client-id: ${{ secrets.TAILSCALE_OAUTH_CLIENT_ID }}
audience: ${{ secrets.TAILSCALE_OAUTH_CLIENT_AUDIENCE }}
tags: tag:ci
- name: Install Dependencies
run: yarn install --immutable
- name: Netlify publish
uses: netlify/actions/cli@3185065f4ab2f6df6f2ef41ee013626e1c02a426
with:
args: publish
env:
{} #TODO
# NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
# NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
+1
View File
@@ -14,6 +14,7 @@ coverage
package-lock.json
yarn.lock
.yarn
.yarnrc.yml
# Profiler output
events.json
+1
View File
@@ -19,6 +19,7 @@
"lint:css": "stylelint \"**/*.{css,vue}\"",
"lint": "yarn lint:js && yarn lint:tsc && yarn lint:prettier && yarn lint:css",
"lint:ci": "yarn lint:tsc && yarn lint:css",
"prettier:fix": "prettier --config .prettierrc --ignore-path .prettierignore --write .",
"gqlgen": "graphql-codegen",
"gqlgen:watch": "graphql-codegen --watch"
},