Skip to content

Commit

Permalink
Improved preferences logic
Browse files Browse the repository at this point in the history
  • Loading branch information
htuzel committed Nov 13, 2024
1 parent 72220cd commit 01d7288
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 42 deletions.
20 changes: 0 additions & 20 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,26 +54,6 @@ jobs:
- name: Package Code
run: zip -r $CODE_VERSION.zip $CODE_VERSION

- name: Prepare Site Import
run: |
mkdir -p site_import/sites/RefArch
mkdir -p site_import/meta
cat <<EOF > site_import/sites/RefArch/preferences.xml
<?xml version="1.0" encoding="UTF-8"?>
<preferences xmlns="http://www.demandware.com/xml/impex/preferences/2007-03-31">
<custom-preferences>
<all-instances>
<preference preference-id="Algolia_RecordModel">variant-level</preference>
<preference preference-id="Algolia_IndexPrefix">varx</preference>
<preference preference-id="Algolia_AdditionalAttributes">color,size,colorVariations,masterID,short_description,brand,name,pricebooks</preference>
</all-instances>
</custom-preferences>
</preferences>
EOF
- name: Package Site Import
run: zip -r site_import.zip site_import

- name: Deploy and Activate Code
env:
SANDBOX_HOST: ${{ vars.SANDBOX_HOST }}
Expand Down
12 changes: 7 additions & 5 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"proxyquire": "2.1.3",
"search-insights": "2.11.0",
"sfcc-ci": "^2.12.0",
"archiver": "5.3.1",
"sgmf-scripts": "^2.4.2"
},
"browserslist": [
Expand Down
63 changes: 46 additions & 17 deletions scripts/importPreferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,61 @@ require('dotenv').config();
const sfcc = require('sfcc-ci');
const authenticate = require('./auth');
const path = require('path');
const {
exec
} = require('child_process');
const fs = require('fs');
const archiver = require('archiver');

(async () => {
try {
const token = await authenticate();

const instance = process.env.SANDBOX_HOST;

// Define the path to the site import directory and zip file
// Define paths
const siteImportDir = path.resolve('./site_import');
const siteArchive = path.resolve('./site_import.zip');
const sitesDir = path.join(siteImportDir, 'sites');
const refArchDir = path.join(sitesDir, 'RefArch');
const metaDir = path.join(siteImportDir, 'meta');

// Create directories
fs.mkdirSync(refArchDir, { recursive: true });
fs.mkdirSync(metaDir, { recursive: true });
console.log('Directories created successfully.');

// Create preferences.xml
const preferencesXmlContent = `<?xml version="1.0" encoding="UTF-8"?>
<preferences xmlns="http://www.demandware.com/xml/impex/preferences/2007-03-31">
<custom-preferences>
<all-instances>
<preference preference-id="Algolia_RecordModel">variant-level</preference>
<preference preference-id="Algolia_IndexPrefix">varx</preference>
<preference preference-id="Algolia_AdditionalAttributes">color,size,colorVariations,masterID,short_description,brand,name,pricebooks</preference>
</all-instances>
</custom-preferences>
</preferences>`;

const preferencesXmlPath = path.join(refArchDir, 'preferences.xml');
fs.writeFileSync(preferencesXmlPath, preferencesXmlContent);
console.log('preferences.xml created successfully.');

// Zip the site_import folder
console.log('Zipping the site_import folder...');
const siteArchive = path.resolve('./site_import.zip');
console.log('Creating site_import.zip...');
await new Promise((resolve, reject) => {
exec(`zip -r ${siteArchive} ${siteImportDir}`, (err, stdout, stderr) => {
if (err) {
console.error('Error zipping site_import folder:', stderr);
reject(err);
} else {
console.log('site_import folder zipped successfully.');
resolve();
}
const output = fs.createWriteStream(siteArchive);
const archive = archiver('zip', { zlib: { level: 9 } });

output.on('close', () => {
console.log(`site_import.zip created (${archive.pointer()} total bytes).`);
resolve();
});

archive.on('error', (err) => {
reject(err);
});

archive.pipe(output);
archive.directory(siteImportDir, 'site_import');
archive.finalize();
});

// Upload Site Preferences
Expand Down Expand Up @@ -59,9 +88,9 @@ const {
});
});

console.log('Site preferences imported successfully.');
console.log('Site preferences import completed successfully.');
} catch (error) {
console.error('Import error:', error);
console.error('Error:', error);
process.exit(1);
}
})();
})();

0 comments on commit 01d7288

Please sign in to comment.