Skip to content

Commit 266393d

Browse files
committed
CI: Adjust time frame before the release
1 parent 5c7dfe8 commit 266393d

File tree

1 file changed

+24
-23
lines changed

1 file changed

+24
-23
lines changed

.github/workflows/bundled_gems.yml

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -100,48 +100,49 @@ jobs:
100100
gems: ${{ steps.diff.outputs.gems }}
101101
if: ${{ steps.diff.outputs.update }}
102102

103-
- name: Fetch more logs
104-
id: logs
105-
run: |
106-
file=gems/bundled_gems days=30
107-
{ echo days=$days; echo file=$file; } >> $GITHUB_OUTPUT
108-
since=$(date --date=-$[days * 2 + 10]day +'%F')
109-
set -x
110-
git sparse-checkout set --no-cone /$file
111-
git fetch --shallow-since="$since" --no-tags origin ${GITHUB_REF}
112-
113103
- name: Development revision of bundled gems
114104
run: |
115105
#!ruby
116-
file = ENV["file"]
117-
days = ENV["days"].to_i
118-
today = Time.new("#{ENV['TODAY']}T00:00:00Z").to_i
119-
limit = today - days * 86400
106+
file = "gems/bundled_gems"
107+
108+
SECONDS_IN_DAY = 86400
109+
today = Time.new("#{ENV['TODAY']}Z")
110+
if !(december = today.month == 12)
111+
days = 30
112+
elsif (days = 26 - today.day).positive?
113+
days += 4
114+
else
115+
puts "::info:: just after released"
116+
exit
117+
end
120118
121-
ok = true
119+
since = "#{today.year-1}-12-26"
120+
ref = ENV['GITHUB_REF']
121+
puts "::group::\e[94mfetching \e[1m#{file}\e[22m since \e[1m#{since}\e[22m from \e[1m#{ref}\e[m"
122+
system(*%W[git fetch --shallow-since=#{since} --no-tags origin #{ref}], exception: true)
123+
puts "::endgroup::"
124+
125+
puts "\e[94mchecking development version bundled gems older than \e[1m#{days}\e[22m days\e[m"
126+
limit = today.to_i - days * SECONDS_IN_DAY
127+
old = 0
122128
IO.popen(%W"git blame --line-porcelain -- #{file}") do |blame|
123129
while head = blame.gets("\n\t") and s = blame.gets
124130
next unless (gem = s.split(/\s+|#.*/)).size > 3
125131
time = head[/^committer-time \K\d+/].to_i
126132
next if (d = limit - time) <= 0
127-
d /= 86400
133+
d /= SECONDS_IN_DAY
128134
line = head[/\A\h+ \d+ \K\d+/].to_i
129-
level = if d < days; 'warning'; else ok = false; 'error'; end
135+
level = if d < days; 'warning'; else old += 1; 'error'; end
130136
d += days
131137
puts "::#{level} file=#{file},line=#{line},title=Older than #{d} days::#{gem[0]} #{gem[3]}"
132138
end
133139
end
134-
# exit ok
140+
abort "::error title=Too long-standing gems::The release comes soon." if december and old.nonzero?
135141
shell: ruby {0}
136142
env:
137143
file: ${{ steps.logs.outputs.file }}
138144
days: ${{ steps.logs.outputs.days }}
139145

140-
- name: Restore sparse checkout
141-
run: |
142-
git sparse-checkout disable
143-
if: always()
144-
145146
- name: Install libraries
146147
uses: ./.github/actions/setup/ubuntu
147148
if: ${{ steps.diff.outputs.gems }}

0 commit comments

Comments
 (0)