Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .github/workflows/ci-lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -117,10 +117,6 @@ jobs:
if: ${{ !cancelled() }}
run: pnpm run lint
working-directory: packages/bot-runner
- name: Lint Workspace Sync CLI
if: ${{ !cancelled() }}
run: pnpm run lint
working-directory: packages/workspace-sync-cli
- name: Lint Boxel CLI
if: ${{ !cancelled() }}
run: pnpm run lint
Expand Down
72 changes: 1 addition & 71 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ jobs:
matrix: ${{ steps.filter.outputs.matrix }}
realm-server: ${{ steps.filter.outputs.realm-server }}
vscode-boxel-tools: ${{ steps.filter.outputs.vscode-boxel-tools }}
workspace-sync-cli: ${{ steps.filter.outputs.workspace-sync-cli }}
boxel-cli: ${{ steps.filter.outputs.boxel-cli }}
bench-amd: ${{ steps.filter.outputs.bench-amd }}
bench-realm: ${{ steps.filter.outputs.bench-realm }}
Expand Down Expand Up @@ -117,9 +116,6 @@ jobs:
vscode-boxel-tools:
- *shared
- 'packages/vscode-boxel-tools/**'
workspace-sync-cli:
- *shared
- 'packages/workspace-sync-cli/**'
boxel-cli:
- *shared
- 'packages/boxel-cli/**'
Expand Down Expand Up @@ -157,7 +153,7 @@ jobs:
test-web-assets:
name: Build test web assets
needs: change-check
if: needs.change-check.outputs.boxel == 'true' || needs.change-check.outputs.boxel-ui == 'true' || needs.change-check.outputs.matrix == 'true' || needs.change-check.outputs.realm-server == 'true' || needs.change-check.outputs.vscode-boxel-tools == 'true' || needs.change-check.outputs.workspace-sync-cli == 'true' || needs.change-check.outputs.boxel-cli == 'true' || github.ref == 'refs/heads/main' || needs.change-check.outputs.run_all == 'true'
if: needs.change-check.outputs.boxel == 'true' || needs.change-check.outputs.boxel-ui == 'true' || needs.change-check.outputs.matrix == 'true' || needs.change-check.outputs.realm-server == 'true' || needs.change-check.outputs.vscode-boxel-tools == 'true' || needs.change-check.outputs.boxel-cli == 'true' || github.ref == 'refs/heads/main' || needs.change-check.outputs.run_all == 'true'
uses: ./.github/workflows/test-web-assets.yaml
with:
caller: ci
Expand Down Expand Up @@ -863,72 +859,6 @@ jobs:
name: vscode-boxel-tools
path: packages/vscode-boxel-tools/boxel-tools*vsix

workspace-sync-cli-build:
name: Workspace Sync CLI Build
needs: change-check
if: needs.change-check.outputs.workspace-sync-cli == 'true' || github.ref == 'refs/heads/main' || needs.change-check.outputs.run_all == 'true'
runs-on: ubuntu-latest
concurrency:
group: workspace-sync-cli-build-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/init
- name: Build workspace-sync-cli
run: pnpm build
working-directory: packages/workspace-sync-cli

workspace-sync-cli-test:
name: Workspace Sync CLI Integration Tests
needs: [change-check, test-web-assets]
if: needs.change-check.outputs.workspace-sync-cli == 'true' || github.ref == 'refs/heads/main' || needs.change-check.outputs.run_all == 'true'
runs-on: ubuntu-latest
timeout-minutes: 15
concurrency:
group: workspace-sync-cli-test-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/init
- name: Download test web assets
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: ${{ needs.test-web-assets.outputs.artifact_name }}
path: .test-web-assets-artifact
- name: Restore test web assets into workspace
shell: bash
run: |
shopt -s dotglob
cp -a .test-web-assets-artifact/. ./
- name: Build workspace-sync-cli
run: pnpm build
working-directory: packages/workspace-sync-cli
- name: Serve test assets (icons + host dist)
run: |
mise run ci:serve-test-assets &
timeout 180 bash -c 'until curl -ksf https://localhost:4200 > /dev/null && curl -sf http://localhost:4206 > /dev/null; do sleep 2; done'
- name: Start PostgreSQL for tests
run: pnpm start:pg | tee -a /tmp/test-services.log &
working-directory: packages/realm-server
- name: Start Matrix services for tests
run: pnpm start:matrix | tee -a /tmp/test-services.log &
working-directory: packages/realm-server
- name: Wait for PostgreSQL to accept connections
run: timeout 60 bash -c 'until (echo > /dev/tcp/127.0.0.1/5435) >/dev/null 2>&1; do sleep 1; done'
- name: Register realm users for tests
run: pnpm register-realm-users
working-directory: packages/matrix
- name: Run integration tests
run: pnpm test
working-directory: packages/workspace-sync-cli
- name: Upload test services log
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
if: ${{ !cancelled() }}
with:
name: workspace-sync-cli-test-services-log
path: /tmp/test-services.log
retention-days: 30

boxel-cli-build:
name: Boxel CLI Build
needs: change-check
Expand Down
25 changes: 25 additions & 0 deletions packages/boxel-cli/tests/integration/realm-push.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,31 @@ describe('realm push (integration)', () => {
expect(manifest.files['.boxel-sync.json']).toBeUndefined();
});

it('respects .boxelignore patterns', async () => {
let realmUrl = await createTestRealm();
let localDir = makeLocalDir();

writeLocalFile(localDir, '.boxelignore', '*.ignore\nignore-dir/\n');
writeLocalFile(localDir, 'card.gts', 'export const card = true;\n');
writeLocalFile(localDir, 'test.ignore', 'should not be uploaded');
writeLocalFile(localDir, 'ignore-dir/ignored.json', '{"ignored":true}\n');

await pushCommand(localDir, realmUrl, { profileManager });

// Non-ignored file is uploaded
expect(await remoteFileExists(realmUrl, 'card.gts')).toBe(true);
// Files matching .boxelignore patterns are not uploaded
expect(await remoteFileExists(realmUrl, 'test.ignore')).toBe(false);
expect(await remoteFileExists(realmUrl, 'ignore-dir/ignored.json')).toBe(
false,
);
// The .boxelignore file itself is also not uploaded (dotfile rule)
expect(await remoteFileExists(realmUrl, '.boxelignore')).toBe(false);

let manifest = readManifest(localDir);
expect(Object.keys(manifest.files).sort()).toEqual(['card.gts']);
});

it('pushes nested subdirectories recursively', async () => {
let realmUrl = await createTestRealm();
let localDir = makeLocalDir();
Expand Down
11 changes: 0 additions & 11 deletions packages/workspace-sync-cli/.eslintignore

This file was deleted.

35 changes: 0 additions & 35 deletions packages/workspace-sync-cli/.eslintrc.js

This file was deleted.

53 changes: 0 additions & 53 deletions packages/workspace-sync-cli/.gitignore

This file was deleted.

Loading
Loading