diff --git a/.github/workflows/test-packages.yaml b/.github/workflows/test-packages.yaml new file mode 100644 index 0000000..fddde6d --- /dev/null +++ b/.github/workflows/test-packages.yaml @@ -0,0 +1,31 @@ +name: Test Packages + +on: [push, pull_request] + +permissions: + contents: read + +jobs: + test: + name: Test Packages + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v7 + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ruby + bundler-cache: true + + - uses: actions/setup-node@v7 + with: + node-version: 24 + cache: npm + cache-dependency-path: test/live/.website/package-lock.json + + - name: Install dependencies + run: bundle exec bake web:packages:install root=test/live/.website frozen=true + + - name: Check static packages + run: bundle exec bake web:packages:check root=test/live/.website diff --git a/.gitignore b/.gitignore index ee82a6f..bd4a7bf 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /gems.locked /.covered.db /external +/test/live/.website/node_modules diff --git a/gems.rb b/gems.rb index b2f4aa6..20eef05 100644 --- a/gems.rb +++ b/gems.rb @@ -18,6 +18,8 @@ end group :test do + gem "web-packages", "~> 0.2" + gem "sus" gem "covered" diff --git a/releases.md b/releases.md index cec820c..ce91e58 100644 --- a/releases.md +++ b/releases.md @@ -1,5 +1,11 @@ # Releases +## Unreleased + +### Web Packages + +Live now uses `web-packages` to install and project the JavaScript packages used by its browser integration tests. The generated static package manifest supplies the test page import map, while `node_modules` is treated as a disposable package-manager projection. + ## v0.19.0 ### Explicit Element Construction diff --git a/test/live/.website/_components/.manifest.json b/test/live/.website/_components/.manifest.json new file mode 100644 index 0000000..058539b --- /dev/null +++ b/test/live/.website/_components/.manifest.json @@ -0,0 +1,25 @@ +{ + "format": 1, + "base": "/_components/", + "imports": { + "live": "/_components/@socketry/live/Live.js", + "morphdom": "/_components/morphdom/morphdom-esm.js" + }, + "packages": { + "@socketry/live": { + "version": "0.16.0", + "source": ".", + "files": { + "Live.js": "74d31c1af27eddaaf1c2cbd7d0c2b7e51e9f123800c130ce468ee0a998160f3d" + } + }, + "morphdom": { + "version": "2.7.7", + "source": "dist", + "files": { + "morphdom-esm.js": "48e804579b52b7e0f6a6331e6436d5d1c2e21c24f815528d8a91bc350984ec3a" + } + } + }, + "digest": "26730554c6c7938b737947014a44d59ee78feb7c2939acf53726caeb58685b4a" +} diff --git a/test/live/.website/node_modules/@socketry/live/Live.js b/test/live/.website/_components/@socketry/live/Live.js similarity index 100% rename from test/live/.website/node_modules/@socketry/live/Live.js rename to test/live/.website/_components/@socketry/live/Live.js diff --git a/test/live/.website/node_modules/morphdom/dist/morphdom-esm.js b/test/live/.website/_components/morphdom/morphdom-esm.js similarity index 100% rename from test/live/.website/node_modules/morphdom/dist/morphdom-esm.js rename to test/live/.website/_components/morphdom/morphdom-esm.js diff --git a/test/live/.website/index.html b/test/live/.website/index.html index 0543885..61a2c2a 100644 --- a/test/live/.website/index.html +++ b/test/live/.website/index.html @@ -3,12 +3,7 @@