mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-05-12 17:04:46 +00:00
[ACS-8659] Refine ADF upstream to pick only 'alpha' versions (#4049)
* Investigate GH package versions response * Retrieve package data * Get proper package type * Pass required exec param * Use proper dependency name * Code cleanup * [ACS-8659] Prettier fixes
This commit is contained in:
parent
af957ef8b0
commit
86fb96579b
4
.github/workflows/upstream-adf.yml
vendored
4
.github/workflows/upstream-adf.yml
vendored
@ -30,11 +30,11 @@ jobs:
|
||||
github-token: ${{ secrets.BOT_GITHUB_TOKEN }}
|
||||
script: |
|
||||
const getLatestVersionOf = require('./scripts/gh/update/latest-version-of.js');
|
||||
const { hasNewVersion: hasNewADFVersion , remoteVersion: latestADFVersion } = await getLatestVersionOf({github, dependencyName: 'adf-core'});
|
||||
const { hasNewVersion: hasNewADFVersion , remoteVersion: latestADFVersion } = await getLatestVersionOf({exec, github, dependencyName: 'adf-core'});
|
||||
console.log('hasNewADFVersion', hasNewADFVersion);
|
||||
console.log('latestADFVersion', latestADFVersion?.name);
|
||||
|
||||
const { hasNewVersion: hasNewJSVersion, remoteVersion: latestJSVersion } = await getLatestVersionOf({github, dependencyName: 'js-api'});
|
||||
const { hasNewVersion: hasNewJSVersion, remoteVersion: latestJSVersion } = await getLatestVersionOf({exec, github, dependencyName: 'js-api'});
|
||||
console.log('hasNewJSVersion', hasNewJSVersion);
|
||||
console.log('latestJSVersion', latestJSVersion?.name);
|
||||
if (hasNewADFVersion === 'true' || hasNewJSVersion === 'true' ) {
|
||||
|
@ -2,7 +2,7 @@ function inDays(d1, d2) {
|
||||
return Math.floor((d2.getTime() - d1.getTime()) / (24 * 3600 * 1000));
|
||||
}
|
||||
|
||||
module.exports = async ({github, dependencyName}) => {
|
||||
module.exports = async ({ exec, github, dependencyName }) => {
|
||||
const organization = 'alfresco';
|
||||
const dependencyFullName = `@${organization}/${dependencyName}`;
|
||||
const pkg = require('../../../package.json');
|
||||
@ -10,24 +10,38 @@ module.exports = async ({github, dependencyName}) => {
|
||||
const localVersion = pkg.dependencies[dependencyFullName];
|
||||
|
||||
const { data: availablePackages } = await github.rest.packages.getAllPackageVersionsForPackageOwnedByOrg({
|
||||
package_type: 'npm',
|
||||
package_name: dependencyName,
|
||||
org: organization
|
||||
package_type: 'npm',
|
||||
package_name: dependencyName,
|
||||
org: organization
|
||||
});
|
||||
|
||||
const latestPkgToUpdate = availablePackages[0];
|
||||
let latestPkgToUpdate = availablePackages[0];
|
||||
const options = {};
|
||||
let packageDistTag = '';
|
||||
options.listeners = {
|
||||
stdout: (data) => {
|
||||
packageDistTag += data.toString();
|
||||
}
|
||||
};
|
||||
await exec.exec(`npm dist-tag ls @alfresco/${dependencyName}`, [], options);
|
||||
const tagsType = packageDistTag.split('\n');
|
||||
const latestPkgTag = tagsType.find((tag) => tag.includes(latestPkgToUpdate.name))?.split(':')[0];
|
||||
|
||||
if (localVersion === latestPkgToUpdate?.name) {
|
||||
return { hasNewVersion: 'false' };
|
||||
} else {
|
||||
const findLocalVersionOnRemote = availablePackages.find((item) => item.name === localVersion);
|
||||
let rangeInDays = 'N/A'
|
||||
if (findLocalVersionOnRemote !== undefined) {
|
||||
const creationLocal = new Date(findLocalVersionOnRemote.created_at);
|
||||
const creationLatest = new Date(latestPkgToUpdate.created_at);
|
||||
rangeInDays = inDays(creationLocal, creationLatest);
|
||||
}
|
||||
return { hasNewVersion: 'true', remoteVersion: { name: latestPkgToUpdate?.name, rangeInDays } , localVersion};
|
||||
if (latestPkgTag !== 'alpha') {
|
||||
const alphaPackageVersion = tagsType.find((tag) => tag.includes('alpha'))?.split(':')[1].trim();
|
||||
latestPkgToUpdate = availablePackages.find((item) => item.name === alphaPackageVersion);
|
||||
}
|
||||
|
||||
}
|
||||
if (localVersion === latestPkgToUpdate?.name) {
|
||||
return { hasNewVersion: 'false' };
|
||||
} else {
|
||||
const findLocalVersionOnRemote = availablePackages.find((item) => item.name === localVersion);
|
||||
let rangeInDays = 'N/A';
|
||||
if (findLocalVersionOnRemote !== undefined) {
|
||||
const creationLocal = new Date(findLocalVersionOnRemote.created_at);
|
||||
const creationLatest = new Date(latestPkgToUpdate.created_at);
|
||||
rangeInDays = inDays(creationLocal, creationLatest);
|
||||
}
|
||||
return { hasNewVersion: 'true', remoteVersion: { name: latestPkgToUpdate?.name, rangeInDays }, localVersion };
|
||||
}
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user