feat(infra): improve ci perf (#14503)
#### PR Dependency Tree * **PR #14503** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Improved CI efficiency with targeted Rust test detection and workspace-scoped builds for faster, more focused runs. * Added workflow static-analysis configuration and refined Node/Playwright/Electron build flags and platform controls. * Added a new test workspace dependency and TypeScript project reference for blocksuite tests; updated workspace wiring for focused builds. * Cleaned CI environment handling for server test orchestration. * **Bug Fixes** * Hardened mobile release steps (safer credential handling and quoting) to improve iOS/Android publish reliability. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
20
.github/actionlint.yaml
vendored
Normal file
20
.github/actionlint.yaml
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
self-hosted-runner:
|
||||||
|
# Labels of self-hosted runner in array of strings.
|
||||||
|
labels:
|
||||||
|
- win-signer
|
||||||
|
|
||||||
|
# Configuration variables in array of strings defined in your repository or
|
||||||
|
# organization. `null` means disabling configuration variables check.
|
||||||
|
# Empty array means no configuration variable is allowed.
|
||||||
|
config-variables: null
|
||||||
|
|
||||||
|
# Configuration for file paths. The keys are glob patterns to match to file
|
||||||
|
# paths relative to the repository root. The values are the configurations for
|
||||||
|
# the file paths. Note that the path separator is always '/'.
|
||||||
|
# The following configurations are available.
|
||||||
|
#
|
||||||
|
# "ignore" is an array of regular expression patterns. Matched error messages
|
||||||
|
# are ignored. This is similar to the "-ignore" command line option.
|
||||||
|
paths:
|
||||||
|
# .github/workflows/**/*.yml:
|
||||||
|
# ignore: []
|
||||||
1
.github/actions/setup-version/action.yml
vendored
1
.github/actions/setup-version/action.yml
vendored
@@ -7,7 +7,6 @@ inputs:
|
|||||||
ios-app-version:
|
ios-app-version:
|
||||||
description: 'iOS App Store Version (Optional, use App version if empty)'
|
description: 'iOS App Store Version (Optional, use App version if empty)'
|
||||||
required: false
|
required: false
|
||||||
type: string
|
|
||||||
runs:
|
runs:
|
||||||
using: 'composite'
|
using: 'composite'
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
100
.github/workflows/build-test.yml
vendored
100
.github/workflows/build-test.yml
vendored
@@ -68,9 +68,26 @@ jobs:
|
|||||||
runs-on: ubuntu-24.04-arm
|
runs-on: ubuntu-24.04-arm
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
- name: Setup Go (for actionlint)
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: 'stable'
|
||||||
|
- name: Install actionlint
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
go install github.com/rhysd/actionlint/cmd/actionlint@v1.7.11
|
||||||
|
- name: Run actionlint
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
"$(go env GOPATH)/bin/actionlint"
|
||||||
- name: Run oxlint
|
- name: Run oxlint
|
||||||
# oxlint is fast, so wrong code will fail quickly
|
# oxlint is fast, so wrong code will fail quickly
|
||||||
run: yarn dlx $(node -e "console.log(require('./package.json').scripts['lint:ox'].replace('oxlint', 'oxlint@' + require('./package.json').devDependencies.oxlint))")
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
oxlint_version="$(node -e "console.log(require('./package.json').devDependencies.oxlint)")"
|
||||||
|
yarn dlx "oxlint@${oxlint_version}" --deny-warnings
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: ./.github/actions/setup-node
|
uses: ./.github/actions/setup-node
|
||||||
with:
|
with:
|
||||||
@@ -108,20 +125,45 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
yarn affine bs-docs build
|
yarn affine bs-docs build
|
||||||
git checkout packages/frontend/i18n/src/i18n-completenesses.json
|
git checkout packages/frontend/i18n/src/i18n-completenesses.json
|
||||||
git status --porcelain | grep . && {
|
if git status --porcelain | grep -q .; then
|
||||||
echo "Run 'yarn typecheck && yarn affine bs-docs build' and make sure all changes are submitted"
|
echo "Run 'yarn typecheck && yarn affine bs-docs build' and make sure all changes are submitted"
|
||||||
exit 1
|
exit 1
|
||||||
} || {
|
else
|
||||||
echo "All changes are submitted"
|
echo "All changes are submitted"
|
||||||
}
|
fi
|
||||||
|
|
||||||
|
rust-test-filter:
|
||||||
|
name: Rust test filter
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
run-rust: ${{ steps.rust-filter.outputs.rust }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: dorny/paths-filter@v3
|
||||||
|
id: rust-filter
|
||||||
|
with:
|
||||||
|
filters: |
|
||||||
|
rust:
|
||||||
|
- '**/*.rs'
|
||||||
|
- '**/Cargo.toml'
|
||||||
|
- '**/Cargo.lock'
|
||||||
|
- '.cargo/**'
|
||||||
|
- 'rust-toolchain*'
|
||||||
|
- '.github/actions/build-rust/**'
|
||||||
|
|
||||||
lint-rust:
|
lint-rust:
|
||||||
name: Lint Rust
|
name: Lint Rust
|
||||||
|
if: ${{ needs.rust-test-filter.outputs.run-rust == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs:
|
||||||
|
- rust-test-filter
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: ./.github/actions/build-rust
|
- uses: ./.github/actions/build-rust
|
||||||
with:
|
with:
|
||||||
|
target: x86_64-unknown-linux-gnu
|
||||||
|
package: 'affine'
|
||||||
no-build: 'true'
|
no-build: 'true'
|
||||||
- name: fmt check
|
- name: fmt check
|
||||||
run: |
|
run: |
|
||||||
@@ -159,12 +201,12 @@ jobs:
|
|||||||
yarn affine i18n build
|
yarn affine i18n build
|
||||||
yarn affine server genconfig
|
yarn affine server genconfig
|
||||||
git checkout packages/frontend/i18n/src/i18n-completenesses.json
|
git checkout packages/frontend/i18n/src/i18n-completenesses.json
|
||||||
git status --porcelain | grep . && {
|
if git status --porcelain | grep -q .; then
|
||||||
echo "Run 'yarn affine init && yarn affine gql build && yarn affine i18n build && yarn affine server genconfig' and make sure all changes are submitted"
|
echo "Run 'yarn affine init && yarn affine gql build && yarn affine i18n build && yarn affine server genconfig' and make sure all changes are submitted"
|
||||||
exit 1
|
exit 1
|
||||||
} || {
|
else
|
||||||
echo "All changes are submitted"
|
echo "All changes are submitted"
|
||||||
}
|
fi
|
||||||
|
|
||||||
check-yarn-binary:
|
check-yarn-binary:
|
||||||
name: Check yarn binary
|
name: Check yarn binary
|
||||||
@@ -173,7 +215,9 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Run check
|
- name: Run check
|
||||||
run: |
|
run: |
|
||||||
yarn set version $(node -e "console.log(require('./package.json').packageManager.split('@')[1])")
|
set -euo pipefail
|
||||||
|
yarn_version="$(node -e "console.log(require('./package.json').packageManager.split('@')[1])")"
|
||||||
|
yarn set version "$yarn_version"
|
||||||
git diff --exit-code
|
git diff --exit-code
|
||||||
|
|
||||||
e2e-blocksuite-test:
|
e2e-blocksuite-test:
|
||||||
@@ -188,6 +232,7 @@ jobs:
|
|||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: ./.github/actions/setup-node
|
uses: ./.github/actions/setup-node
|
||||||
with:
|
with:
|
||||||
|
extra-flags: workspaces focus @affine/monorepo @affine-test/blocksuite @blocksuite/playground @blocksuite/integration-test
|
||||||
playwright-install: true
|
playwright-install: true
|
||||||
playwright-platform: 'chromium'
|
playwright-platform: 'chromium'
|
||||||
electron-install: false
|
electron-install: false
|
||||||
@@ -215,6 +260,7 @@ jobs:
|
|||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: ./.github/actions/setup-node
|
uses: ./.github/actions/setup-node
|
||||||
with:
|
with:
|
||||||
|
extra-flags: workspaces focus @affine/monorepo @affine-test/blocksuite @blocksuite/playground @blocksuite/integration-test
|
||||||
playwright-install: true
|
playwright-install: true
|
||||||
playwright-platform: 'chromium,firefox,webkit'
|
playwright-platform: 'chromium,firefox,webkit'
|
||||||
electron-install: false
|
electron-install: false
|
||||||
@@ -298,6 +344,7 @@ jobs:
|
|||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: ./.github/actions/setup-node
|
uses: ./.github/actions/setup-node
|
||||||
with:
|
with:
|
||||||
|
extra-flags: workspaces focus @affine/monorepo @affine-test/affine-local @affine/web @affine/server
|
||||||
playwright-install: true
|
playwright-install: true
|
||||||
playwright-platform: 'chromium'
|
playwright-platform: 'chromium'
|
||||||
electron-install: false
|
electron-install: false
|
||||||
@@ -329,6 +376,7 @@ jobs:
|
|||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: ./.github/actions/setup-node
|
uses: ./.github/actions/setup-node
|
||||||
with:
|
with:
|
||||||
|
extra-flags: workspaces focus @affine/monorepo @affine-test/affine-mobile @affine/mobile
|
||||||
playwright-install: true
|
playwright-install: true
|
||||||
electron-install: false
|
electron-install: false
|
||||||
full-cache: true
|
full-cache: true
|
||||||
@@ -400,7 +448,7 @@ jobs:
|
|||||||
working-directory: ${{ github.workspace }}
|
working-directory: ${{ github.workspace }}
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
export PLATFORM_ARCH_ABI=$(node -e "console.log(require('@napi-rs/cli').parseTriple('x86_64-unknown-linux-gnu').platformArchABI)")
|
PLATFORM_ARCH_ABI="$(node -e "console.log(require('@napi-rs/cli').parseTriple('x86_64-unknown-linux-gnu').platformArchABI)")"
|
||||||
echo "filename=affine.$PLATFORM_ARCH_ABI.node" >> "$GITHUB_OUTPUT"
|
echo "filename=affine.$PLATFORM_ARCH_ABI.node" >> "$GITHUB_OUTPUT"
|
||||||
- name: Build AFFiNE native
|
- name: Build AFFiNE native
|
||||||
uses: ./.github/actions/build-rust
|
uses: ./.github/actions/build-rust
|
||||||
@@ -439,7 +487,7 @@ jobs:
|
|||||||
working-directory: ${{ github.workspace }}
|
working-directory: ${{ github.workspace }}
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
export PLATFORM_ARCH_ABI=$(node -e "console.log(require('@napi-rs/cli').parseTriple('${{ matrix.spec.target }}').platformArchABI)")
|
PLATFORM_ARCH_ABI="$(node -e "console.log(require('@napi-rs/cli').parseTriple('${{ matrix.spec.target }}').platformArchABI)")"
|
||||||
echo "filename=affine.$PLATFORM_ARCH_ABI.node" >> "$GITHUB_OUTPUT"
|
echo "filename=affine.$PLATFORM_ARCH_ABI.node" >> "$GITHUB_OUTPUT"
|
||||||
- name: Build AFFiNE native
|
- name: Build AFFiNE native
|
||||||
uses: ./.github/actions/build-rust
|
uses: ./.github/actions/build-rust
|
||||||
@@ -488,7 +536,7 @@ jobs:
|
|||||||
working-directory: ${{ env.DEV_DRIVE_WORKSPACE }}
|
working-directory: ${{ env.DEV_DRIVE_WORKSPACE }}
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
export PLATFORM_ARCH_ABI=$(node -e "console.log(require('@napi-rs/cli').parseTriple('${{ matrix.spec.target }}').platformArchABI)")
|
PLATFORM_ARCH_ABI="$(node -e "console.log(require('@napi-rs/cli').parseTriple('${{ matrix.spec.target }}').platformArchABI)")"
|
||||||
echo "filename=affine.$PLATFORM_ARCH_ABI.node" >> "$GITHUB_OUTPUT"
|
echo "filename=affine.$PLATFORM_ARCH_ABI.node" >> "$GITHUB_OUTPUT"
|
||||||
- name: Build AFFiNE native
|
- name: Build AFFiNE native
|
||||||
uses: ./.github/actions/build-rust
|
uses: ./.github/actions/build-rust
|
||||||
@@ -536,6 +584,7 @@ jobs:
|
|||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: ./.github/actions/setup-node
|
uses: ./.github/actions/setup-node
|
||||||
with:
|
with:
|
||||||
|
extra-flags: workspaces focus @affine/monorepo @affine/electron-renderer @affine/nbstore @toeverything/infra
|
||||||
electron-install: false
|
electron-install: false
|
||||||
full-cache: true
|
full-cache: true
|
||||||
- name: Build Electron renderer
|
- name: Build Electron renderer
|
||||||
@@ -617,6 +666,7 @@ jobs:
|
|||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: ./.github/actions/setup-node
|
uses: ./.github/actions/setup-node
|
||||||
with:
|
with:
|
||||||
|
extra-flags: workspaces focus @affine/monorepo @affine/server
|
||||||
electron-install: false
|
electron-install: false
|
||||||
full-cache: true
|
full-cache: true
|
||||||
|
|
||||||
@@ -697,6 +747,7 @@ jobs:
|
|||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: ./.github/actions/setup-node
|
uses: ./.github/actions/setup-node
|
||||||
with:
|
with:
|
||||||
|
extra-flags: workspaces focus @affine/monorepo @affine/server
|
||||||
electron-install: false
|
electron-install: false
|
||||||
full-cache: true
|
full-cache: true
|
||||||
|
|
||||||
@@ -713,8 +764,6 @@ jobs:
|
|||||||
run: yarn affine @affine/server test:coverage "**/*/*elasticsearch.spec.ts" --forbid-only
|
run: yarn affine @affine/server test:coverage "**/*/*elasticsearch.spec.ts" --forbid-only
|
||||||
env:
|
env:
|
||||||
CARGO_TARGET_DIR: '${{ github.workspace }}/target'
|
CARGO_TARGET_DIR: '${{ github.workspace }}/target'
|
||||||
CI_NODE_INDEX: ${{ matrix.node_index }}
|
|
||||||
CI_NODE_TOTAL: ${{ matrix.total_nodes }}
|
|
||||||
|
|
||||||
- name: Upload server test coverage results
|
- name: Upload server test coverage results
|
||||||
uses: codecov/codecov-action@v5
|
uses: codecov/codecov-action@v5
|
||||||
@@ -761,6 +810,7 @@ jobs:
|
|||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: ./.github/actions/setup-node
|
uses: ./.github/actions/setup-node
|
||||||
with:
|
with:
|
||||||
|
extra-flags: workspaces focus @affine/monorepo @affine/server
|
||||||
electron-install: false
|
electron-install: false
|
||||||
full-cache: true
|
full-cache: true
|
||||||
|
|
||||||
@@ -787,7 +837,10 @@ jobs:
|
|||||||
|
|
||||||
miri:
|
miri:
|
||||||
name: miri code check
|
name: miri code check
|
||||||
|
if: ${{ needs.rust-test-filter.outputs.run-rust == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs:
|
||||||
|
- rust-test-filter
|
||||||
env:
|
env:
|
||||||
RUST_BACKTRACE: full
|
RUST_BACKTRACE: full
|
||||||
CARGO_TERM_COLOR: always
|
CARGO_TERM_COLOR: always
|
||||||
@@ -812,7 +865,10 @@ jobs:
|
|||||||
|
|
||||||
loom:
|
loom:
|
||||||
name: loom thread test
|
name: loom thread test
|
||||||
|
if: ${{ needs.rust-test-filter.outputs.run-rust == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs:
|
||||||
|
- rust-test-filter
|
||||||
env:
|
env:
|
||||||
RUSTFLAGS: --cfg loom
|
RUSTFLAGS: --cfg loom
|
||||||
RUST_BACKTRACE: full
|
RUST_BACKTRACE: full
|
||||||
@@ -835,7 +891,10 @@ jobs:
|
|||||||
|
|
||||||
fuzzing:
|
fuzzing:
|
||||||
name: fuzzing
|
name: fuzzing
|
||||||
|
if: ${{ needs.rust-test-filter.outputs.run-rust == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs:
|
||||||
|
- rust-test-filter
|
||||||
env:
|
env:
|
||||||
CARGO_TERM_COLOR: always
|
CARGO_TERM_COLOR: always
|
||||||
steps:
|
steps:
|
||||||
@@ -871,7 +930,10 @@ jobs:
|
|||||||
|
|
||||||
rust-test:
|
rust-test:
|
||||||
name: Run native tests
|
name: Run native tests
|
||||||
|
if: ${{ needs.rust-test-filter.outputs.run-rust == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs:
|
||||||
|
- rust-test-filter
|
||||||
env:
|
env:
|
||||||
CARGO_TERM_COLOR: always
|
CARGO_TERM_COLOR: always
|
||||||
steps:
|
steps:
|
||||||
@@ -879,6 +941,7 @@ jobs:
|
|||||||
- name: Setup Rust
|
- name: Setup Rust
|
||||||
uses: ./.github/actions/build-rust
|
uses: ./.github/actions/build-rust
|
||||||
with:
|
with:
|
||||||
|
target: x86_64-unknown-linux-gnu
|
||||||
package: 'affine'
|
package: 'affine'
|
||||||
no-build: 'true'
|
no-build: 'true'
|
||||||
|
|
||||||
@@ -971,6 +1034,7 @@ jobs:
|
|||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: ./.github/actions/setup-node
|
uses: ./.github/actions/setup-node
|
||||||
with:
|
with:
|
||||||
|
extra-flags: workspaces focus @affine/monorepo @affine/server
|
||||||
electron-install: false
|
electron-install: false
|
||||||
full-cache: true
|
full-cache: true
|
||||||
|
|
||||||
@@ -1043,6 +1107,7 @@ jobs:
|
|||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: ./.github/actions/setup-node
|
uses: ./.github/actions/setup-node
|
||||||
with:
|
with:
|
||||||
|
extra-flags: workspaces focus @affine/monorepo @affine-test/affine-cloud-copilot @affine/web @affine/server
|
||||||
playwright-install: true
|
playwright-install: true
|
||||||
playwright-platform: 'chromium'
|
playwright-platform: 'chromium'
|
||||||
electron-install: false
|
electron-install: false
|
||||||
@@ -1125,7 +1190,10 @@ jobs:
|
|||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: ./.github/actions/setup-node
|
uses: ./.github/actions/setup-node
|
||||||
with:
|
with:
|
||||||
|
extra-flags: workspaces focus @affine/monorepo @affine-test/affine-cloud @affine-test/affine-desktop-cloud @affine/web @affine/server @affine/electron @affine/electron-renderer @affine/nbstore @toeverything/infra
|
||||||
playwright-install: true
|
playwright-install: true
|
||||||
|
playwright-platform: 'chromium'
|
||||||
|
electron-install: ${{ matrix.tests.shard == 'desktop' && 'true' || 'false' }}
|
||||||
hard-link-nm: false
|
hard-link-nm: false
|
||||||
|
|
||||||
- name: Download server-native.node
|
- name: Download server-native.node
|
||||||
@@ -1204,7 +1272,8 @@ jobs:
|
|||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
with:
|
with:
|
||||||
extra-flags: workspaces focus @affine/electron @affine/monorepo @affine-test/affine-desktop @affine/nbstore @toeverything/infra
|
extra-flags: workspaces focus @affine/electron @affine/monorepo @affine-test/affine-desktop @affine/nbstore @toeverything/infra
|
||||||
playwright-install: true
|
playwright-install: ${{ matrix.spec.test && 'true' || 'false' }}
|
||||||
|
playwright-platform: 'chromium'
|
||||||
hard-link-nm: false
|
hard-link-nm: false
|
||||||
enableScripts: false
|
enableScripts: false
|
||||||
|
|
||||||
@@ -1212,7 +1281,7 @@ jobs:
|
|||||||
id: filename
|
id: filename
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
export PLATFORM_ARCH_ABI=$(node -e "console.log(require('@napi-rs/cli').parseTriple('${{ matrix.spec.target }}').platformArchABI)")
|
PLATFORM_ARCH_ABI="$(node -e "console.log(require('@napi-rs/cli').parseTriple('${{ matrix.spec.target }}').platformArchABI)")"
|
||||||
echo "filename=affine.$PLATFORM_ARCH_ABI.node" >> "$GITHUB_OUTPUT"
|
echo "filename=affine.$PLATFORM_ARCH_ABI.node" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
- name: Download ${{ steps.filename.outputs.filename }}
|
- name: Download ${{ steps.filename.outputs.filename }}
|
||||||
@@ -1319,6 +1388,7 @@ jobs:
|
|||||||
- server-test
|
- server-test
|
||||||
- server-e2e-test
|
- server-e2e-test
|
||||||
- rust-test
|
- rust-test
|
||||||
|
- rust-test-filter
|
||||||
- copilot-test-filter
|
- copilot-test-filter
|
||||||
- copilot-api-test
|
- copilot-api-test
|
||||||
- copilot-e2e-test
|
- copilot-e2e-test
|
||||||
|
|||||||
10
.github/workflows/release-mobile.yml
vendored
10
.github/workflows/release-mobile.yml
vendored
@@ -128,9 +128,9 @@ jobs:
|
|||||||
- name: Testflight
|
- name: Testflight
|
||||||
working-directory: packages/frontend/apps/ios/App
|
working-directory: packages/frontend/apps/ios/App
|
||||||
run: |
|
run: |
|
||||||
echo -n "${{ env.BUILD_PROVISION_PROFILE }}" | base64 --decode -o $PP_PATH
|
printf '%s' "$BUILD_PROVISION_PROFILE" | base64 --decode -o "$PP_PATH"
|
||||||
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
|
mkdir -p "$HOME/Library/MobileDevice/Provisioning Profiles"
|
||||||
cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
|
cp "$PP_PATH" "$HOME/Library/MobileDevice/Provisioning Profiles"
|
||||||
fastlane beta
|
fastlane beta
|
||||||
env:
|
env:
|
||||||
BUILD_TARGET: distribution
|
BUILD_TARGET: distribution
|
||||||
@@ -160,7 +160,9 @@ jobs:
|
|||||||
- name: Load Google Service file
|
- name: Load Google Service file
|
||||||
env:
|
env:
|
||||||
DATA: ${{ secrets.FIREBASE_ANDROID_GOOGLE_SERVICE_JSON }}
|
DATA: ${{ secrets.FIREBASE_ANDROID_GOOGLE_SERVICE_JSON }}
|
||||||
run: echo $DATA | base64 -di > packages/frontend/apps/android/App/app/google-services.json
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
printf '%s' "$DATA" | base64 -di > packages/frontend/apps/android/App/app/google-services.json
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: ./.github/actions/setup-node
|
uses: ./.github/actions/setup-node
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
"test": "yarn playwright test"
|
"test": "yarn playwright test"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@affine-test/kit": "workspace:*",
|
||||||
"@blocksuite/affine": "workspace:*",
|
"@blocksuite/affine": "workspace:*",
|
||||||
"@blocksuite/integration-test": "workspace:*",
|
"@blocksuite/integration-test": "workspace:*",
|
||||||
"@playwright/test": "=1.52.0",
|
"@playwright/test": "=1.52.0",
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
},
|
},
|
||||||
"include": ["e2e"],
|
"include": ["e2e"],
|
||||||
"references": [
|
"references": [
|
||||||
|
{ "path": "../kit" },
|
||||||
{ "path": "../../blocksuite/affine/all" },
|
{ "path": "../../blocksuite/affine/all" },
|
||||||
{ "path": "../../blocksuite/integration-test" }
|
{ "path": "../../blocksuite/integration-test" }
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1444,6 +1444,7 @@ export const PackageList = [
|
|||||||
location: 'tests/blocksuite',
|
location: 'tests/blocksuite',
|
||||||
name: '@affine-test/blocksuite',
|
name: '@affine-test/blocksuite',
|
||||||
workspaceDependencies: [
|
workspaceDependencies: [
|
||||||
|
'tests/kit',
|
||||||
'blocksuite/affine/all',
|
'blocksuite/affine/all',
|
||||||
'blocksuite/integration-test',
|
'blocksuite/integration-test',
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@affine-test/blocksuite@workspace:tests/blocksuite"
|
resolution: "@affine-test/blocksuite@workspace:tests/blocksuite"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
"@affine-test/kit": "workspace:*"
|
||||||
"@blocksuite/affine": "workspace:*"
|
"@blocksuite/affine": "workspace:*"
|
||||||
"@blocksuite/integration-test": "workspace:*"
|
"@blocksuite/integration-test": "workspace:*"
|
||||||
"@playwright/test": "npm:=1.52.0"
|
"@playwright/test": "npm:=1.52.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user