diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 57311e81..ac716e4d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -9,16 +9,49 @@ on: jobs: build: - runs-on: ${{ matrix.os }} - strategy: fail-fast: false matrix: - os: [macos-latest, ubuntu-latest, windows-latest] - + include: + - os: windows-latest + platform: win32 + arch: x64 + npm_config_arch: x64 + - os: windows-latest + platform: win32 + arch: arm64 + npm_config_arch: arm + - os: ubuntu-latest + platform: linux + arch: x64 + npm_config_arch: x64 + - os: ubuntu-latest + platform: linux + arch: arm64 + npm_config_arch: arm64 + - os: ubuntu-latest + platform: linux + arch: armhf + npm_config_arch: arm + - os: ubuntu-latest + platform: alpine + arch: x64 + npm_config_arch: x64 + - os: macos-latest + platform: darwin + arch: x64 + npm_config_arch: x64 + - os: macos-latest + platform: darwin + arch: arm64 + npm_config_arch: arm64 + runs-on: ${{ matrix.os }} steps: - name: Clone repository uses: actions/checkout@v4 + + - shell: pwsh + run: echo "TARGET=${{ matrix.platform }}-${{ matrix.arch }}" >> $env:GITHUB_ENV - name: Setup Node uses: actions/setup-node@v4 @@ -32,11 +65,13 @@ jobs: cache-name: cache-node-modules with: path: "**/node_modules" - key: ${{ runner.os }}-node-modules-${{ hashFiles('**/package.json', '**/package-lock.json') }} + key: ${{ runner.os }}-${{ matrix.npm_config_arch }}-node-modules-${{ hashFiles('**/package.json', '**/package-lock.json') }} - name: Install dependencies if: steps.cache-node-modules.outputs.cache-hit != 'true' run: npm ci + env: + npm_config_arch: ${{ matrix.npm_config_arch }} - name: Lint run: npm run lint diff --git a/client/package.json b/client/package.json index 5a341eb7..1a14b6e8 100644 --- a/client/package.json +++ b/client/package.json @@ -52,7 +52,7 @@ "prettier": "prettier *.json \"src/**/*.{ts,js,md,json,yml}\"", "clean": "rimraf out tmp tsconfig.tsbuildinfo", "prepackage": "npm run clean && node scripts/bundle.js", - "package": "cd ./tmp && vsce package --no-dependencies --no-yarn -o ..", + "package": "cd ./tmp && vsce package --no-dependencies --no-yarn --target $TARGET -o ..", "postpackage": "rimraf ./tmp" }, "devDependencies": {