-
Notifications
You must be signed in to change notification settings - Fork 20
160 lines (132 loc) · 6.4 KB
/
privado-language-engine-version.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
name: Monitoring Stability and Comparing Results
# Triggers when a pull_request is created
on:
schedule:
- cron: '15 3,8 * * *'
workflow_dispatch:
jobs:
start_workflow:
runs-on: ubuntu-latest
steps:
- name: Send message to slack
id: initial-message
uses: archive/github-actions-slack@master
with:
slack-optional-parse: full
slack-bot-user-oauth-access-token: ${{ secrets.SLACK_TOKEN }}
slack-channel: ${{ secrets.LANG_ENGINE_CHANNEL_ID }}
slack-text: "Comparison workflow started for Privado Language Engine version update."
- name: Save output to env
id: save-output
run: echo "INIT_MSG_TS=${{ fromJson(steps.initial-message.outputs.slack-result).response.message.ts }}" >> $GITHUB_OUTPUT
outputs:
init_message_ts: ${{steps.save-output.outputs.INIT_MSG_TS}}
setup_and_scan:
needs: start_workflow
strategy:
matrix:
language: ['java-1', 'java-2', 'python', 'js', 'ruby-1', 'ruby-2', 'go', 'kotlin']
continue-on-error: true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Debug output
run: echo ${{needs.start_workflow.outputs.init_message_ts}}
- name: Install JDK-18
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '18'
- name: Export Java Home Path
run: export PATH=$JAVA_HOME/bin:$PATH
- name: Install sbt
run: mkdir -p ~/bin && curl -Ls https://raw.githubusercontent.com/dwijnand/sbt-extras/master/sbt > ~/bin/sbt && chmod 0755 ~/bin/sbt
- name: Install Python 3.10
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Clone standalone-monitoring-stability/flow-test
uses: actions/checkout@v3
with:
repository: Privado-Inc/standalone-monitoring-stability
path: ./temp/standalone-monitoring-stability
ref: joern-parallel
# langauge specific repository file
- name: Run the script
run: export GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} && cd ./temp/standalone-monitoring-stability && pip install -r requirements.txt && python3 ./run.py -r ./repos/${{matrix.language}}.txt -ju -guf
- name: Run aws-export
run: cd ./temp/standalone-monitoring-stability/ && python3 aws-export.py ${{matrix.language}}
- name: Move results to a folder
run: cd ./temp/standalone-monitoring-stability/ && mkdir results && mv output-${{matrix.language}}.xlsx ./results/output-${{matrix.language}}.xlsx && mv ./temp/result-${{matrix.language}}.zip ./results/result-${{matrix.language}}.zip && mv slack_summary.txt ./results/slack_summary.txt
# Send result to slack
- name: Zip the results
run: cd /home/runner/work/privado-core/privado-core/temp/standalone-monitoring-stability && zip result-${{matrix.language}}.zip -r ./results
- name: Set summary variable
run: |
echo "MESSAGE<<EOF" >> $GITHUB_ENV
echo "$(cat /home/runner/work/privado-core/privado-core/temp/standalone-monitoring-stability/results/slack_summary.txt)" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Post results to slack
uses: adrey/slack-file-upload-action@master
with:
thread_ts: ${{needs.start_workflow.outputs.init_message_ts}}
channel: ${{ secrets.LANG_ENGINE_CHANNEL_ID }} # check
path: "/home/runner/work/privado-core/privado-core/temp/standalone-monitoring-stability/result-${{matrix.language}}.zip"
initial_comment: "Comparison Results generated on ${{github.event.repository.name}}\n Language: ${{matrix.language}} \nSummary Report:\n ${{ env.MESSAGE }}"
filetype: "zip"
token: ${{ secrets.SLACK_TOKEN }}
- name: Export workflow output
run: cd ./temp/standalone-monitoring-stability && python3 ./workflow_check.py /home/runner/work/privado-core/privado-core/temp/standalone-monitoring-stability/results/slack_summary.txt
- name: Set summary variable
run: |
echo "MESSAGE<<EOF" >> $GITHUB_ENV
echo "$(cat ./temp/standalone-monitoring-stability/action_result.txt)" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Print action result
run: cat ./temp/standalone-monitoring-stability/action_result.txt
- name: Upload summary file
uses: actions/upload-artifact@master
with:
name: ${{matrix.language}}
path: /home/runner/work/privado-core/privado-core/temp/standalone-monitoring-stability/results/slack_summary.txt
- name: Workflow report analysis
if: ${{ env.MESSAGE != 'true' }}
run: exit 1
collate_summary:
needs: [start_workflow, setup_and_scan]
runs-on: ubuntu-latest
steps:
- name: Download summary file
uses: actions/download-artifact@master
with:
path: ./language_summary
# Check output
- name: Debug output
run: ls ./language_summary
- name: Install Python 3.10
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Clone standalone-monitoring-stability/flow-test
uses: actions/checkout@v3
with:
repository: Privado-Inc/standalone-monitoring-stability
path: ./temp/standalone-monitoring-stability
ref: joern-parallel
- name: Collate summary
run: cd ./temp/standalone-monitoring-stability && pip install -r requirements.txt && python3 ./collate_summary.py -s /home/runner/work/privado-core/privado-core/language_summary -ju True
- name: Debug summary output
run: cat ./temp/standalone-monitoring-stability/global_summary.txt
- name: Set summary variable
run: |
echo "MESSAGE<<EOF" >> $GITHUB_ENV
echo "$(cat /home/runner/work/privado-core/privado-core/temp/standalone-monitoring-stability/global_summary.txt)" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Send summary to slack
uses: slackapi/slack-github-action@v1.24.0
with:
update-ts: ${{needs.start_workflow.outputs.init_message_ts}}
channel-id: ${{ secrets.LANG_ENGINE_CHANNEL_ID }}
slack-message: "\n*Language Engine* Comparison Results generated on ${{github.event.repository.name}}\nLanguage: All \nSummary Report:\n ${{ env.MESSAGE }}"
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_TOKEN }}