This commit is contained in:
Chris Frohoff
2022-03-22 01:03:15 -07:00
parent f0233ca0c9
commit 47dcf11dd9
3 changed files with 67 additions and 6 deletions
+51
View File
@@ -0,0 +1,51 @@
import itertools
import json
import operator
import sys
import subprocess
try:
import pytablewriter
except:
subprocess.check_call(['pip', 'install', 'pytablewriter'])
import pytablewriter
def ver(v):
return v.split(".", 1)[1] if v.startswith("1.") else v
def status(s):
return ':green_circle:' if s == 'SUCCESS' else ':red_square:'
if len(sys.argv) > 1:
with open(sys.argv[1]) as f:
data = [json.loads(line) for line in f.readlines()]
else:
data = [json.loads(line) for line in sys.stdin.readlines()]
for da in data:
del da['out']
# print(repr(data))
GET_VER = operator.itemgetter('java.version')
GET_PAY = operator.itemgetter('payload')
by_payload = {payload:
{ver(version): status(list(o2)[0]['status'])
for version, o2 in itertools.groupby(sorted(o1, key=GET_VER), GET_VER)}
for payload, o1 in itertools.groupby(sorted(data, key=GET_PAY), GET_PAY)}
# print(repr(by_payload))
vers = list(list(by_payload.items())[0][1].keys())
# print(vers)
md = pytablewriter.MarkdownTableWriter()
md.table_name = ''
md.header_list = [''] + vers
md.value_matrix = [[p] + [o[v] for v in vers] for p, o in sorted(by_payload.items())]
md.write_table()
+15 -5
View File
@@ -38,6 +38,11 @@ jobs:
name: jar name: jar
path: target/ysoserial-*-all.jar path: target/ysoserial-*-all.jar
- uses: actions/upload-artifact@v3
with:
name: results
path: .github/workflow/results.py
set-matrix: set-matrix:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: dwdraju/alpine-curl-jq container: dwdraju/alpine-curl-jq
@@ -55,10 +60,10 @@ jobs:
- build - build
strategy: strategy:
matrix: matrix:
# version: ${{ fromJson(needs.set-matrix.outputs.versions) }} # broken in act version: ${{ fromJson(needs.set-matrix.outputs.versions) }} # broken in act
version: # version:
- 7u21-jdk # - 7u21-jdk
- 7u25-jdk # - 7u25-jdk
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: vulhub/java:${{ matrix.version }} image: vulhub/java:${{ matrix.version }}
@@ -83,8 +88,13 @@ jobs:
with: with:
path: artifacts path: artifacts
- run: cat artifacts/out*/*.txt > out.txt - run: cat artifacts/out*/*.txt > out.txt
- run: cat out.txt | python artifacts/results/results.py > matrix.md
- uses: actions/upload-artifact@v3 - uses: actions/upload-artifact@v3
with: with:
name: out name: out
path: out.txt path: out.txt
- uses: actions/upload-artifact@v3
with:
name: matrix
path: matrix.md
@@ -47,7 +47,7 @@ public class PayloadListener extends RunListener {
Status status = statuses.get(description); Status status = statuses.get(description);
String payload = getPayload(description.getDisplayName()); String payload = getPayload(description.getDisplayName());
String out = outs.get(description).toString(); String out = outs.get(description).toString().trim();
Map<String,String> props = new HashMap<String, String>(); Map<String,String> props = new HashMap<String, String>();
props.put("payload", payload); props.put("payload", payload);