Skip to content

Commit

Permalink
Website: Ship the SQLite database integration plugin
Browse files Browse the repository at this point in the history
Related to Boot protocol #1398

Ships the SQLite database integration in WordPress builds to make it
accessible in remote.html and enable installing it separately in
WordPress builds that don't ship it by default.

No testing instructions – this only adds new code that's not used
for anything yet.
  • Loading branch information
adamziel committed May 17, 2024
1 parent 99f2cdb commit 32d6527
Show file tree
Hide file tree
Showing 5 changed files with 108 additions and 1 deletion.
46 changes: 46 additions & 0 deletions .github/workflows/refresh-sqlite-integration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: 'Refresh WordPress Nightly'

on:
workflow_dispatch:
# Deploy the nightly version of WordPress every day at 8am UTC
schedule:
- cron: '0 8 * * *'

jobs:
build_and_deploy:
# Only run this workflow from the trunk branch and when it's triggered by dmsnell OR adamziel
if: >
github.ref == 'refs/heads/trunk' && (
github.actor == 'adamziel' ||
github.actor == 'dmsnell' ||
github.actor == 'bgrgicak' ||
github.actor == 'brandonpayton'
)
runs-on: ubuntu-latest
environment:
name: wordpress-assets
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.ref }}
clean: true
persist-credentials: false
- uses: ./.github/actions/prepare-playground
- name: 'Get the latest SQLite database integration plugin'
shell: bash
run: |
wget https://github.com/WordPress/sqlite-database-integration/archive/refs/heads/main.zip \
-o packages/playground/wordpress-builds
- name: Config git user
run: |
git config --global user.name "deployment_bot"
git config --global user.email "deployment_bot@users.noreply.github.com"
git remote set-url origin https://${{ secrets.GH_ACTOR }}:${{ secrets.GH_TOKEN }}@github.com/${{ github.repository }}
git add -A
git commit -a -m "Refresh WordPress Nightly"
git pull --rebase
# Push if the pull did not result in a conflict
if [ $? -eq 0 ]; then
git push origin HEAD:trunk
fi;
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import yargs from 'yargs';
import { promises as fs } from 'fs';
const parser = yargs(process.argv.slice(2))
.usage('Usage: $0 [options]')
.options({
['output-dir']: {
type: 'string',
description: 'output directory',
required: true,
},
});

const args = parser.argv;

const outputZipPath = `${args.outputDir}/sqlite-database-integration.zip`;
const sqliteResponse = await fetch(
'https://github.com/WordPress/sqlite-database-integration/archive/refs/heads/main.zip'
);
const sqliteZip = Buffer.from(await sqliteResponse.arrayBuffer());
await fs.writeFile(outputZipPath, sqliteZip);

// Refresh get-sqlite-module.ts
const getWordPressModulePath = `${args.outputDir}/get-sqlite-database-plugin-details.ts`;
const getWordPressModuleContent = `
// @ts-ignore
import url from './sqlite-database-integration.zip?url';
/**
* This file was auto generated by packages/playground/wordpress-builds/build/refresh-sqlite-integration-plugin.js
* DO NOT CHANGE MANUALLY!
* This file must statically exists in the project because of the way
* vite resolves imports.
*/
export function getSqliteDatabaseIntegrationDetails(): { size: number, url: string } {
/** @ts-ignore */
return {
size: ${JSON.stringify((await fs.stat(outputZipPath)).size)},
url: url,
};
}
`;
await fs.writeFile(getWordPressModulePath, getWordPressModuleContent);
2 changes: 1 addition & 1 deletion packages/playground/wordpress-builds/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
export { getWordPressModuleDetails } from './wordpress/get-wordpress-module-details';
export { getWordPressModule } from './wordpress/get-wordpress-module';
export { getSqliteDatabaseIntegrationDetails } from './sqlite-database-integration/get-sqlite-database-plugin-details';
import SupportedWordPressVersions from './wordpress/wp-versions.json';

export { SupportedWordPressVersions };
Expand All @@ -8,4 +9,3 @@ export const SupportedWordPressVersionsList = Object.keys(
) as any as string[];
export const LatestSupportedWordPressVersion =
SupportedWordPressVersionsList.filter((v) => v.match(/^\d/))[0] as string;

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// @ts-ignore
import url from './sqlite-database-integration.zip?url';

/**
* This file was auto generated by packages/playground/wordpress-builds/build/refresh-sqlite-integration-plugin.js
* DO NOT CHANGE MANUALLY!
* This file must statically exists in the project because of the way
* vite resolves imports.
*/
export function getSqliteDatabaseIntegrationDetails(): {
size: number;
url: string;
} {
/** @ts-ignore */
return {
size: 83948,
url: url,
};
}
Binary file not shown.

0 comments on commit 32d6527

Please sign in to comment.