mirror of
https://github.com/nowcommunity/nowdatabase.git
synced 2026-10-12 19:13:52 +03:00
Replace deprecated package cleanup action
This commit is contained in:
+147
-11
@@ -7,7 +7,6 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
env:
|
env:
|
||||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true'
|
|
||||||
BACKEND_IMAGE_NAME: ${{ github.event_name == 'release' && 'nowdb-backend' || 'nowdb-backend-staging' }}
|
BACKEND_IMAGE_NAME: ${{ github.event_name == 'release' && 'nowdb-backend' || 'nowdb-backend-staging' }}
|
||||||
FRONTEND_IMAGE_NAME: ${{ github.event_name == 'release' && 'nowdb-frontend' || 'nowdb-frontend-staging' }}
|
FRONTEND_IMAGE_NAME: ${{ github.event_name == 'release' && 'nowdb-frontend' || 'nowdb-frontend-staging' }}
|
||||||
BACKEND_URL: ${{ github.event_name == 'release' && secrets.BACKEND_URL_PROD || secrets.BACKEND_URL_STAGING }}
|
BACKEND_URL: ${{ github.event_name == 'release' && secrets.BACKEND_URL_PROD || secrets.BACKEND_URL_STAGING }}
|
||||||
@@ -97,16 +96,153 @@ jobs:
|
|||||||
delete_old_staging:
|
delete_old_staging:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: ${{ github.event_name == 'push' }}
|
if: ${{ github.event_name == 'push' }}
|
||||||
env:
|
permissions:
|
||||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true'
|
packages: write
|
||||||
|
contents: read
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/delete-package-versions@v5
|
- uses: actions/github-script@v8
|
||||||
|
env:
|
||||||
|
PACKAGE_NAME: nowdb-frontend-staging
|
||||||
|
MIN_VERSIONS_TO_KEEP: '3'
|
||||||
with:
|
with:
|
||||||
package-name: 'nowdb-frontend-staging'
|
script: |
|
||||||
min-versions-to-keep: 3
|
const packageName = process.env.PACKAGE_NAME;
|
||||||
package-type: 'container'
|
const minVersionsToKeep = Number(process.env.MIN_VERSIONS_TO_KEEP ?? '0');
|
||||||
- uses: actions/delete-package-versions@v5
|
const owner = context.repo.owner;
|
||||||
|
|
||||||
|
const listVersions = async () => {
|
||||||
|
try {
|
||||||
|
return await github.paginate(
|
||||||
|
github.rest.packages.getAllPackageVersionsForPackageOwnedByOrg,
|
||||||
|
{
|
||||||
|
package_type: 'container',
|
||||||
|
package_name: packageName,
|
||||||
|
org: owner,
|
||||||
|
per_page: 100,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
} catch (error) {
|
||||||
|
if (error.status !== 404) {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
|
||||||
|
return github.paginate(
|
||||||
|
github.rest.packages.getAllPackageVersionsForPackageOwnedByUser,
|
||||||
|
{
|
||||||
|
package_type: 'container',
|
||||||
|
package_name: packageName,
|
||||||
|
username: owner,
|
||||||
|
per_page: 100,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const deleteVersion = async (packageVersionId) => {
|
||||||
|
try {
|
||||||
|
await github.rest.packages.deletePackageVersionForOrg({
|
||||||
|
package_type: 'container',
|
||||||
|
package_name: packageName,
|
||||||
|
org: owner,
|
||||||
|
package_version_id: packageVersionId,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
if (error.status !== 404) {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
|
||||||
|
await github.rest.packages.deletePackageVersionForUser({
|
||||||
|
package_type: 'container',
|
||||||
|
package_name: packageName,
|
||||||
|
username: owner,
|
||||||
|
package_version_id: packageVersionId,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const versions = await listVersions();
|
||||||
|
|
||||||
|
const versionsToDelete = versions
|
||||||
|
.slice()
|
||||||
|
.sort((a, b) => new Date(b.created_at) - new Date(a.created_at))
|
||||||
|
.slice(minVersionsToKeep);
|
||||||
|
|
||||||
|
core.info(`Found ${versions.length} versions for ${packageName}. Deleting ${versionsToDelete.length}.`);
|
||||||
|
|
||||||
|
for (const version of versionsToDelete) {
|
||||||
|
await deleteVersion(version.id);
|
||||||
|
core.info(`Deleted ${packageName} version ${version.id}.`);
|
||||||
|
}
|
||||||
|
- uses: actions/github-script@v8
|
||||||
|
env:
|
||||||
|
PACKAGE_NAME: nowdb-backend-staging
|
||||||
|
MIN_VERSIONS_TO_KEEP: '3'
|
||||||
with:
|
with:
|
||||||
package-name: 'nowdb-backend-staging'
|
script: |
|
||||||
min-versions-to-keep: 3
|
const packageName = process.env.PACKAGE_NAME;
|
||||||
package-type: 'container'
|
const minVersionsToKeep = Number(process.env.MIN_VERSIONS_TO_KEEP ?? '0');
|
||||||
|
const owner = context.repo.owner;
|
||||||
|
|
||||||
|
const listVersions = async () => {
|
||||||
|
try {
|
||||||
|
return await github.paginate(
|
||||||
|
github.rest.packages.getAllPackageVersionsForPackageOwnedByOrg,
|
||||||
|
{
|
||||||
|
package_type: 'container',
|
||||||
|
package_name: packageName,
|
||||||
|
org: owner,
|
||||||
|
per_page: 100,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
} catch (error) {
|
||||||
|
if (error.status !== 404) {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
|
||||||
|
return github.paginate(
|
||||||
|
github.rest.packages.getAllPackageVersionsForPackageOwnedByUser,
|
||||||
|
{
|
||||||
|
package_type: 'container',
|
||||||
|
package_name: packageName,
|
||||||
|
username: owner,
|
||||||
|
per_page: 100,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const deleteVersion = async (packageVersionId) => {
|
||||||
|
try {
|
||||||
|
await github.rest.packages.deletePackageVersionForOrg({
|
||||||
|
package_type: 'container',
|
||||||
|
package_name: packageName,
|
||||||
|
org: owner,
|
||||||
|
package_version_id: packageVersionId,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
if (error.status !== 404) {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
|
||||||
|
await github.rest.packages.deletePackageVersionForUser({
|
||||||
|
package_type: 'container',
|
||||||
|
package_name: packageName,
|
||||||
|
username: owner,
|
||||||
|
package_version_id: packageVersionId,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const versions = await listVersions();
|
||||||
|
|
||||||
|
const versionsToDelete = versions
|
||||||
|
.slice()
|
||||||
|
.sort((a, b) => new Date(b.created_at) - new Date(a.created_at))
|
||||||
|
.slice(minVersionsToKeep);
|
||||||
|
|
||||||
|
core.info(`Found ${versions.length} versions for ${packageName}. Deleting ${versionsToDelete.length}.`);
|
||||||
|
|
||||||
|
for (const version of versionsToDelete) {
|
||||||
|
await deleteVersion(version.id);
|
||||||
|
core.info(`Deleted ${packageName} version ${version.id}.`);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user