9
9
10
10
11
11
jobs :
12
+ precheck :
13
+ runs-on : ubuntu-latest
14
+ outputs :
15
+ nightly-needed : ${{ github.event_name != 'schedule' || fromJson(steps.previous-nightly.outputs.data).workflow_runs[0].head_sha != github.sha }}
16
+ steps :
17
+ - name : Check previous nightly commit
18
+ id : previous-nightly
19
+ uses : octokit/request-action@v2.x
20
+ with :
21
+ route : GET /repos/${{github.repository}}/actions/workflows/axosyslog-nightly.yml/runs?per_page=1&status=success
22
+ env :
23
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
24
+ - run : |
25
+ echo "The previous nightly was built from commit ${{ fromJson(steps.previous-nightly.outputs.data).workflow_runs[0].head_sha }}"
26
+
12
27
tarball :
28
+ if : needs.precheck.outputs.nightly-needed == 'true'
29
+ needs : precheck
13
30
runs-on : ubuntu-latest
14
31
outputs :
15
32
snapshot-version : ${{ steps.snapshot-version.outputs.SNAPSHOT_VERSION }}
74
91
pkg-type : nightly
75
92
76
93
publish-image :
77
- if : github.ref == 'refs/heads/main'
78
94
uses : ./.github/workflows/axosyslog-docker.yml
79
95
needs : tarball
80
96
with :
93
109
uses : actions/github-script@v7
94
110
with :
95
111
script : |
96
- const daysToKeep = 30
97
- const snapshotTagPattern = /_git[0-9]+/
112
+ const nightliesToKeep = 30
113
+ const nightlyTagPattern = /_git[0-9]+/
98
114
99
115
const package_name = "axosyslog"
100
116
const org = "axoflow"
@@ -105,13 +121,12 @@ jobs:
105
121
{ package_type: "container", package_name: package_name, org: org }
106
122
)
107
123
108
- const oldPackageDate = new Date()
109
- oldPackageDate.setDate(oldPackageDate.getDate() - daysToKeep)
110
-
111
- const oldSnapshotVersions = allPackageVersions.filter((p) => {
112
- return new Date(p.updated_at) < oldPackageDate && p.metadata.container && p.metadata.container.tags.length != 0 && p.metadata.container.tags.every((t) => snapshotTagPattern.test(t))
124
+ const nightlyPackageVersions = allPackageVersions.filter((p) => {
125
+ return p.metadata.container && p.metadata.container.tags.length != 0 && p.metadata.container.tags.every((t) => nightlyTagPattern.test(t))
113
126
})
114
127
128
+ const oldSnapshotVersions = nightlyPackageVersions.sort((a,b) => new Date(b.updated_at) - new Date(a.updated_at)).slice(nightliesToKeep);
129
+
115
130
if (oldSnapshotVersions.length === 0) {
116
131
console.log("Nothing to remove")
117
132
return
@@ -121,6 +136,7 @@ jobs:
121
136
122
137
console.log(`Removing the following images: ${oldSnapshotTags}`)
123
138
139
+ /* REVERT after a few days
124
140
const manifestsRequests = oldSnapshotTags.map((t) => {
125
141
const manifest = fetch(`https://ghcr.io/v2/${image}/manifests/${t}`, {
126
142
method: "GET",
@@ -153,3 +169,4 @@ jobs:
153
169
await Promise.all(oldSnapshotVersions.map((v) => {
154
170
return github.rest.packages.deletePackageVersionForOrg({ package_type: "container", package_name: package_name, org: org, package_version_id: v.id})
155
171
}))
172
+ */
0 commit comments