keep min package versions from deletion
This commit is contained in:
@@ -31,3 +31,4 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
package-name: 'com.github.actions.test-package'
|
package-name: 'com.github.actions.test-package'
|
||||||
num-old-versions-to-delete: 0
|
num-old-versions-to-delete: 0
|
||||||
|
min-versions-to-keep: 0
|
||||||
+24
-16
@@ -1,13 +1,13 @@
|
|||||||
import {Input, InputParams} from '../src/input'
|
import {Input, InputParams} from '../src/input'
|
||||||
import {deleteVersions, getVersionIds} from '../src/delete'
|
import {deleteVersions, getVersionIds} from '../src/delete'
|
||||||
|
|
||||||
describe.skip('index tests -- call graphql', () => {
|
describe('index tests -- call graphql', () => {
|
||||||
it('getVersionIds test -- get oldest version', done => {
|
it('getVersionIds test -- get oldest version', done => {
|
||||||
const numVersions = 1
|
const numVersions = 1
|
||||||
|
|
||||||
getVersionIds(getInput({numOldVersionsToDelete: numVersions})).subscribe(
|
getVersionIds(getInput({numOldVersionsToDelete: numVersions})).subscribe(
|
||||||
ids => {
|
ids => {
|
||||||
expect(ids.length).toBe(numVersions)
|
expect(ids.length).toBeLessThanOrEqual(numVersions)
|
||||||
done()
|
done()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -18,7 +18,7 @@ describe.skip('index tests -- call graphql', () => {
|
|||||||
|
|
||||||
getVersionIds(getInput({numOldVersionsToDelete: numVersions})).subscribe(
|
getVersionIds(getInput({numOldVersionsToDelete: numVersions})).subscribe(
|
||||||
ids => {
|
ids => {
|
||||||
expect(ids.length).toBe(numVersions)
|
expect(ids.length).toBeLessThanOrEqual(numVersions)
|
||||||
done()
|
done()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -57,31 +57,39 @@ describe.skip('index tests -- call graphql', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('deleteVersions test -- delete oldest version', done => {
|
it.skip('deleteVersions test -- delete oldest version', done => {
|
||||||
deleteVersions(getInput({numOldVersionsToDelete: 1})).subscribe(
|
deleteVersions(
|
||||||
isSuccess => {
|
getInput({numOldVersionsToDelete: 2, minVersionsToKeep: 1})
|
||||||
|
).subscribe(isSuccess => {
|
||||||
expect(isSuccess).toBe(true)
|
expect(isSuccess).toBe(true)
|
||||||
done()
|
done()
|
||||||
}
|
})
|
||||||
)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('deleteVersions test -- delete 3 oldest versions', done => {
|
it.skip('deleteVersions test -- delete 3 oldest versions', done => {
|
||||||
deleteVersions(getInput({numOldVersionsToDelete: 3})).subscribe(
|
deleteVersions(
|
||||||
isSuccess => {
|
getInput({numOldVersionsToDelete: 3, minVersionsToKeep: 1})
|
||||||
|
).subscribe(isSuccess => {
|
||||||
expect(isSuccess).toBe(true)
|
expect(isSuccess).toBe(true)
|
||||||
done()
|
done()
|
||||||
}
|
})
|
||||||
)
|
})
|
||||||
|
|
||||||
|
it('deleteVersions test -- keep 5 versions', done => {
|
||||||
|
deleteVersions(getInput({minVersionsToKeep: 5})).subscribe(isSuccess => {
|
||||||
|
expect(isSuccess).toBe(true)
|
||||||
|
done()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
const defaultInput: InputParams = {
|
const defaultInput: InputParams = {
|
||||||
packageVersionIds: [],
|
packageVersionIds: [],
|
||||||
owner: 'trent-j',
|
owner: 'namratajha',
|
||||||
repo: 'actions-testing',
|
repo: 'only-pkg',
|
||||||
packageName: 'com.github.trent-j.actions-test',
|
packageName: 'onlypkg.maven',
|
||||||
numOldVersionsToDelete: 1,
|
numOldVersionsToDelete: 1,
|
||||||
|
minVersionsToKeep: 1,
|
||||||
token: process.env.GITHUB_TOKEN as string
|
token: process.env.GITHUB_TOKEN as string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import {
|
|||||||
} from '../../src/version'
|
} from '../../src/version'
|
||||||
import {Observable} from 'rxjs'
|
import {Observable} from 'rxjs'
|
||||||
|
|
||||||
describe.skip('get versions tests -- call graphql', () => {
|
describe('get versions tests -- call graphql', () => {
|
||||||
it('getOldestVersions -- succeeds', done => {
|
it('getOldestVersions -- succeeds', done => {
|
||||||
const numVersions = 1
|
const numVersions = 1
|
||||||
|
|
||||||
@@ -49,9 +49,9 @@ interface Params {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const defaultParams = {
|
const defaultParams = {
|
||||||
owner: 'trent-j',
|
owner: 'namratajha',
|
||||||
repo: 'actions-testing',
|
repo: 'only-pkg',
|
||||||
packageName: 'com.github.trent-j.actions-test',
|
packageName: 'onlypkg.maven',
|
||||||
numVersions: 3,
|
numVersions: 3,
|
||||||
token: process.env.GITHUB_TOKEN as string
|
token: process.env.GITHUB_TOKEN as string
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,12 @@ inputs:
|
|||||||
required: false
|
required: false
|
||||||
default: "1"
|
default: "1"
|
||||||
|
|
||||||
|
min-versions-to-keep:
|
||||||
|
description: >
|
||||||
|
Number of versions to keep starting with the latest version
|
||||||
|
required: false
|
||||||
|
default: "1"
|
||||||
|
|
||||||
token:
|
token:
|
||||||
description: >
|
description: >
|
||||||
Token with the necessary scopes to delete package versions.
|
Token with the necessary scopes to delete package versions.
|
||||||
|
|||||||
Vendored
+24050
-21051
File diff suppressed because one or more lines are too long
Generated
+4
-4
@@ -2735,10 +2735,10 @@
|
|||||||
"tsutils": "^3.17.1"
|
"tsutils": "^3.17.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@zeit/ncc": {
|
"@vercel/ncc": {
|
||||||
"version": "0.20.5",
|
"version": "0.31.1",
|
||||||
"resolved": "https://registry.npmjs.org/@zeit/ncc/-/ncc-0.20.5.tgz",
|
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.31.1.tgz",
|
||||||
"integrity": "sha512-XU6uzwvv95DqxciQx+aOLhbyBx/13ky+RK1y88Age9Du3BlA4mMPCy13BGjayOrrumOzlq1XV3SD/BWiZENXlw==",
|
"integrity": "sha512-g0FAxwdViI6UzsiVz5HssIHqjcPa1EHL6h+2dcJD893SoCJaGdqqgUF09xnMW6goWnnhbLvgiKlgJWrJa+7qYA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"abab": {
|
"abab": {
|
||||||
|
|||||||
+1
-1
@@ -32,7 +32,7 @@
|
|||||||
"@types/jest": "^24.0.23",
|
"@types/jest": "^24.0.23",
|
||||||
"@types/node": "^12.7.12",
|
"@types/node": "^12.7.12",
|
||||||
"@typescript-eslint/parser": "^2.8.0",
|
"@typescript-eslint/parser": "^2.8.0",
|
||||||
"@zeit/ncc": "^0.20.5",
|
"@vercel/ncc": "^0.31.1",
|
||||||
"eslint": "^5.16.0",
|
"eslint": "^5.16.0",
|
||||||
"eslint-plugin-github": "^2.0.0",
|
"eslint-plugin-github": "^2.0.0",
|
||||||
"eslint-plugin-jest": "^22.21.0",
|
"eslint-plugin-jest": "^22.21.0",
|
||||||
|
|||||||
+9
-1
@@ -15,7 +15,15 @@ export function getVersionIds(input: Input): Observable<string[]> {
|
|||||||
input.packageName,
|
input.packageName,
|
||||||
input.numOldVersionsToDelete,
|
input.numOldVersionsToDelete,
|
||||||
input.token
|
input.token
|
||||||
).pipe(map(versionInfo => versionInfo.map(info => info.id)))
|
).pipe(
|
||||||
|
map(versionInfo => {
|
||||||
|
const numberVersionsToDelete =
|
||||||
|
versionInfo.length - input.minVersionsToKeep
|
||||||
|
return numberVersionsToDelete <= 0
|
||||||
|
? []
|
||||||
|
: versionInfo.slice(0, numberVersionsToDelete).map(info => info.id)
|
||||||
|
})
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return throwError(
|
return throwError(
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ export interface InputParams {
|
|||||||
repo?: string
|
repo?: string
|
||||||
packageName?: string
|
packageName?: string
|
||||||
numOldVersionsToDelete?: number
|
numOldVersionsToDelete?: number
|
||||||
|
minVersionsToKeep?: number
|
||||||
token?: string
|
token?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -13,6 +14,7 @@ const defaultParams = {
|
|||||||
repo: '',
|
repo: '',
|
||||||
packageName: '',
|
packageName: '',
|
||||||
numOldVersionsToDelete: 0,
|
numOldVersionsToDelete: 0,
|
||||||
|
minVersionsToKeep: 0,
|
||||||
token: ''
|
token: ''
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -22,6 +24,7 @@ export class Input {
|
|||||||
repo: string
|
repo: string
|
||||||
packageName: string
|
packageName: string
|
||||||
numOldVersionsToDelete: number
|
numOldVersionsToDelete: number
|
||||||
|
minVersionsToKeep: number
|
||||||
token: string
|
token: string
|
||||||
|
|
||||||
constructor(params?: InputParams) {
|
constructor(params?: InputParams) {
|
||||||
@@ -32,6 +35,7 @@ export class Input {
|
|||||||
this.repo = validatedParams.repo
|
this.repo = validatedParams.repo
|
||||||
this.packageName = validatedParams.packageName
|
this.packageName = validatedParams.packageName
|
||||||
this.numOldVersionsToDelete = validatedParams.numOldVersionsToDelete
|
this.numOldVersionsToDelete = validatedParams.numOldVersionsToDelete
|
||||||
|
this.minVersionsToKeep = validatedParams.minVersionsToKeep
|
||||||
this.token = validatedParams.token
|
this.token = validatedParams.token
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,6 +45,7 @@ export class Input {
|
|||||||
this.repo &&
|
this.repo &&
|
||||||
this.packageName &&
|
this.packageName &&
|
||||||
this.numOldVersionsToDelete > 0 &&
|
this.numOldVersionsToDelete > 0 &&
|
||||||
|
this.minVersionsToKeep > 0 &&
|
||||||
this.token
|
this.token
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ function getActionInput(): Input {
|
|||||||
repo: getInput('repo') ? getInput('repo') : context.repo.repo,
|
repo: getInput('repo') ? getInput('repo') : context.repo.repo,
|
||||||
packageName: getInput('package-name'),
|
packageName: getInput('package-name'),
|
||||||
numOldVersionsToDelete: Number(getInput('num-old-versions-to-delete')),
|
numOldVersionsToDelete: Number(getInput('num-old-versions-to-delete')),
|
||||||
|
minVersionsToKeep: Number(getInput('min-versions-to-keep')),
|
||||||
token: getInput('token')
|
token: getInput('token')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user