diff --git a/.github/workflows/compile-wasm.yml b/.github/workflows/compile-wasm.yml deleted file mode 100644 index 23d7282d..00000000 --- a/.github/workflows/compile-wasm.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Compile WASM -on: - workflow_call: - workflow_dispatch: - -jobs: - wasm: - runs-on: buildjet-16vcpu-ubuntu-2204 - steps: - - uses: actions/checkout@v4 - - id: compiled - uses: buildjet/cache@v3 - with: - path: .turbo - key: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-compiled - restore-keys: ${{ hashFiles('**/Cargo.lock') }} - - uses: pnpm/action-setup@v2 - - uses: buildjet/setup-node@v4 - with: - node-version: '21' - cache: 'pnpm' - - run: pnpm install --frozen-lockfile - - run: pnpm turbo telemetry disable - - uses: dtolnay/rust-toolchain@stable # rust only on buildjet - with: - targets: wasm32-unknown-unknown - - uses: jetli/wasm-pack-action@v0.4.0 # preinstall wasm-pack - with: - version: 'latest' - - run: pnpm turbo compile --cache-dir=.turbo # compile wasm - - name: Verify no unexpected file changes (like cargo.lock change) - run: git diff --exit-code - working-directory: packages/wasm/crate - - run: cargo tree --invert penumbra-wasm --edges features # debug tree - if: failure() - working-directory: packages/wasm/crate diff --git a/.github/workflows/extension-upload.yml b/.github/workflows/extension-upload.yml index 7f8e63b0..14840dee 100644 --- a/.github/workflows/extension-upload.yml +++ b/.github/workflows/extension-upload.yml @@ -9,20 +9,15 @@ name: Upload extension on: push: tags: - - '*-?v[0-9]+*' + - "*-?v[0-9]+*" workflow_call: workflow_dispatch: jobs: - turbo-compile: - name: Compile - uses: ./.github/workflows/compile-wasm.yml - publish: environment: ext-publish name: Upload extension dist runs-on: buildjet-16vcpu-ubuntu-2204 - needs: turbo-compile steps: - uses: actions/checkout@v4 @@ -30,13 +25,13 @@ jobs: uses: buildjet/cache@v3 with: path: .turbo - key: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-built - restore-keys: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-compiled + key: ${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-publish + restore-keys: ${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-test - uses: pnpm/action-setup@v2 - uses: buildjet/setup-node@v4 with: - node-version: '21' - cache: 'pnpm' + node-version: "22" + cache: "pnpm" - run: pnpm install --frozen-lockfile - run: pnpm turbo telemetry disable - run: pnpm turbo build --cache-dir=.turbo diff --git a/.github/workflows/turbo-ci.yml b/.github/workflows/turbo-ci.yml index e644bb70..a366d833 100644 --- a/.github/workflows/turbo-ci.yml +++ b/.github/workflows/turbo-ci.yml @@ -7,6 +7,9 @@ on: branches: - main +env: + DO_NOT_TRACK: 1 + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -15,131 +18,63 @@ concurrency: # the first action is commented, most of those comments apply to all actions # every 'turbo' call is cached and essentially no-op if the inputs match -# tried to make wasm compile conditional, but that turned out to be complex. -# cache should make it decently fast. - # pnpm cached by lock hash -# turbo cached by cargo lock, pnpm lock in that order -# mostly, compiled wasm will restore from turbo cache -# rust cache only used in rust jobs +# turbo cached pnpm lock jobs: - turbo-compile: - name: Compile - uses: ./.github/workflows/compile-wasm.yml - turbo-lint: name: Lint runs-on: buildjet-8vcpu-ubuntu-2204 - needs: turbo-compile steps: - uses: actions/checkout@v4 - id: lint uses: buildjet/cache@v3 with: path: .turbo - key: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-lint - restore-keys: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-compiled + key: ${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-lint + restore-keys: ${{ hashFiles('pnpm-lock.yaml') }} - uses: pnpm/action-setup@v2 - uses: buildjet/setup-node@v4 with: - node-version: '21' - cache: 'pnpm' + node-version: "22" + cache: "pnpm" - run: pnpm install --frozen-lockfile - - run: pnpm turbo telemetry disable - run: pnpm turbo lint --cache-dir=.turbo turbo-build: name: Build runs-on: buildjet-8vcpu-ubuntu-2204 - needs: turbo-compile steps: - uses: actions/checkout@v4 - id: built uses: buildjet/cache@v3 with: path: .turbo - key: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-built - restore-keys: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-compiled + key: ${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-built + restore-keys: ${{ hashFiles('pnpm-lock.yaml') }} - uses: pnpm/action-setup@v2 - uses: buildjet/setup-node@v4 with: - node-version: '21' - cache: 'pnpm' + node-version: "22" + cache: "pnpm" - run: pnpm install --frozen-lockfile - - run: pnpm turbo telemetry disable - run: pnpm turbo build --cache-dir=.turbo turbo-test: name: test runs-on: buildjet-4vcpu-ubuntu-2204 - needs: turbo-compile steps: - uses: actions/checkout@v4 - id: tested uses: buildjet/cache@v3 with: path: .turbo - key: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-test - restore-keys: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-compiled + key: ${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-test + restore-keys: ${{ hashFiles('pnpm-lock.yaml') }} - uses: pnpm/action-setup@v2 - uses: buildjet/setup-node@v4 with: - node-version: '21' - cache: 'pnpm' + node-version: "22" + cache: "pnpm" - run: pnpm install --frozen-lockfile - - run: pnpm turbo telemetry disable - - run: pnpm playwright install --with-deps chromium - run: pnpm turbo test --cache-dir=.turbo - - turbo-lint-rust: - name: lint:rust - runs-on: buildjet-4vcpu-ubuntu-2204 - needs: turbo-compile - steps: - - uses: actions/checkout@v4 - - id: rust-linted - uses: buildjet/cache@v3 - with: - path: .turbo - key: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-lint:rust - restore-keys: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-compiled - - uses: pnpm/action-setup@v2 - - uses: buildjet/setup-node@v4 - with: - node-version: '21' - cache: 'pnpm' - - run: pnpm install --frozen-lockfile - - uses: dtolnay/rust-toolchain@stable - with: - targets: wasm32-unknown-unknown - - run: pnpm turbo telemetry disable - - run: pnpm turbo lint:rust --cache-dir=.turbo - - turbo-test-rust: - name: test:rust - runs-on: buildjet-16vcpu-ubuntu-2204 - needs: turbo-compile - steps: - - uses: actions/checkout@v4 - - id: tested - uses: buildjet/cache@v3 - with: - path: .turbo - key: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-test:rust - restore-keys: ${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.ref }}-${{ github.sha }}-compiled - - uses: pnpm/action-setup@v2 - - uses: buildjet/setup-node@v4 - with: - node-version: '21' - cache: 'pnpm' - - run: pnpm install --frozen-lockfile - - uses: dtolnay/rust-toolchain@stable - with: - targets: wasm32-unknown-unknown - - uses: jetli/wasm-pack-action@v0.4.0 - with: - version: 'latest' - - uses: browser-actions/setup-firefox@v1 - - run: pnpm turbo telemetry disable - - run: pnpm turbo test:rust --cache-dir=.turbo