|
1 | | -name: Run AnghaBench CI Cron Jobs |
2 | | - |
3 | | -on: |
4 | | - # Run this workflow every day at 3am |
5 | | - schedule: |
6 | | - - cron: "0 3 * * *" |
7 | | - |
8 | | -jobs: |
9 | | - do-the-job: |
10 | | - strategy: |
11 | | - fail-fast: false |
12 | | - matrix: |
13 | | - llvm: [ '16' ] |
14 | | - run_size: [ '1k' ] |
15 | | - |
16 | | - name: Run AnghaBench CI (AMD64) |
17 | | - runs-on: gha-ubuntu-32 |
18 | | - steps: |
19 | | - - uses: actions/checkout@v2 |
20 | | - with: |
21 | | - ref: ${{ github.event.workflow_run.head_branch }} |
22 | | - submodules: true |
23 | | - # https://stackoverflow.com/questions/58033366/how-to-get-current-branch-within-github-actions |
24 | | - - name: Extract branch name |
25 | | - shell: bash |
26 | | - run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" |
27 | | - id: extract_branch |
28 | | - - name: Set up Python ${{ matrix.python-version }} |
29 | | - uses: actions/setup-python@v4 |
30 | | - with: |
31 | | - python-version: 3.8 |
32 | | - - name: Fix github token auth |
33 | | - shell: bash |
34 | | - env: |
35 | | - ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} |
36 | | - run: | |
37 | | - export HOME=${HOME:-/root} |
38 | | - git config --global user.name "CI User" && git config --global user.email "ci@none.local" |
39 | | - git config --global url."https://${ACCESS_TOKEN}@github.com/".insteadOf "git@github.com:" |
40 | | - - name: Set up pre-requisies |
41 | | - run: | |
42 | | - sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get -qqy upgrade |
43 | | - sudo apt-get install -qqy \ |
44 | | - git curl wget unzip xz-utils pixz jq s3cmd ninja-build pkg-config \ |
45 | | - liblzma-dev zlib1g-dev libtinfo-dev build-essential \ |
46 | | - libc6-dev:i386 libstdc++-*-dev:i386 g++-multilib |
47 | | - wget "https://github.com/Kitware/CMake/releases/download/v3.22.3/cmake-3.22.3-linux-$(uname -m).sh" && \ |
48 | | - sudo /bin/bash cmake-*.sh --skip-license --prefix=/usr/local && rm cmake-*.sh |
49 | | - python3 -m pip install requests |
50 | | - - name: Build rellic against LLVM ${{ matrix.llvm }} |
51 | | - run: | |
52 | | - ./scripts/build.sh \ |
53 | | - --install \ |
54 | | - --extra-cmake-args "-DCMAKE_BUILD_TYPE=Release" \ |
55 | | - --download-dir "$(pwd)/../pre-built-llvm-${{ matrix.llvm }}" \ |
56 | | - --llvm-version ${{ matrix.llvm }} \ |
57 | | - - name: Fetch Angha Data for LLVM {{ matrix.llvm }} |
58 | | - run: | |
59 | | - pushd external/lifting-tools-ci |
60 | | - if [[ -f requirements.txt ]] |
61 | | - then |
62 | | - python3 -m pip install -r requirements.txt |
63 | | - fi |
64 | | -
|
65 | | - mkdir -p $(pwd)/decompiled |
66 | | - mkdir -p $(pwd)/recompiled |
67 | | -
|
68 | | - datasets/fetch_anghabench.sh --clang "${LLVM_VERSION}" --bitcode --run-size "${RUN_SIZE}" |
69 | | -
|
70 | | - for i in *.tar.xz |
71 | | - do |
72 | | - tar -xJf $i |
73 | | - done |
74 | | - popd |
75 | | - env: |
76 | | - LLVM_VERSION: ${{ matrix.llvm }} |
77 | | - RUN_SIZE: ${{ matrix.run_size }} |
78 | | - |
79 | | - - name: Run Angha Against LLVM {{ matrix.llvm }} |
80 | | - run: | |
81 | | -
|
82 | | - pushd external/lifting-tools-ci |
83 | | - # Run the benchmark |
84 | | - tool_run_scripts/rellic.py \ |
85 | | - --run-name "[${RUN_NAME}] [size: ${RUN_SIZE}] [rellic: ${RELLIC_BRANCH}]" \ |
86 | | - --rellic rellic-decomp \ |
87 | | - --input-dir $(pwd)/bitcode \ |
88 | | - --output-dir $(pwd)/decompiled \ |
89 | | - --slack-notify |
90 | | -
|
91 | | - # Try to recompile our decompiled code |
92 | | - tool_run_scripts/recompile.py \ |
93 | | - --run-name "[${RUN_NAME}] [size: ${RUN_SIZE}] [recompile]" \ |
94 | | - --clang clang-${LLVM_VERSION} \ |
95 | | - --input-dir $(pwd)/decompiled \ |
96 | | - --output-dir $(pwd)/recompiled \ |
97 | | - --slack-notify |
98 | | - env: |
99 | | - RUN_SIZE: ${{ matrix.run_size }} |
100 | | - RELLIC_BRANCH: ${{ steps.extract_branch.outputs.branch }} |
101 | | - RUN_NAME: "Rellic Cron Job CI Run" |
102 | | - SLACK_HOOK: ${{ secrets.SLACK_HOOK }} |
103 | | - DO_TOKEN: ${{ secrets.DO_TOKEN }} |
104 | | - LLVM_VERSION: ${{ matrix.llvm }} |
105 | | - |
106 | | - - name: Save Angha Run for LLVM {{ matrix.llvm }} |
107 | | - run: | |
108 | | - # AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY passed in from original invocation environment |
109 | | - if [[ "${AWS_ACCESS_KEY_ID,,}" != "" ]] |
110 | | - then |
111 | | - datenow=$(date +'%F-%H-%M') |
112 | | - url_base="https://tob-amp-ci-results.nyc3.digitaloceanspaces.com" |
113 | | - tar -Ipixz -cf rellic-ci-${datenow}.tar.xz decompiled |
114 | | - tar -Ipixz -cf recompile-ci-${datenow}.tar.xz recompiled |
115 | | -
|
116 | | - s3cmd -c /dev/null \ |
117 | | - '--host-bucket=%(bucket)s.nyc3.digitaloceanspaces.com' \ |
118 | | - --acl-public \ |
119 | | - put \ |
120 | | - rellic-ci-${datenow}.tar.xz \ |
121 | | - s3://tob-amp-ci-results/rellic/ |
122 | | -
|
123 | | - tool_run_scripts/slack.py \ |
124 | | - --msg "Uploaded rellic decompilation results to ${url_base}/rellic/rellic-ci-${datenow}.tar.xz" |
125 | | - |
126 | | - s3cmd -c /dev/null \ |
127 | | - '--host-bucket=%(bucket)s.nyc3.digitaloceanspaces.com' \ |
128 | | - --acl-public \ |
129 | | - put \ |
130 | | - recompile-ci-${datenow}.tar.xz \ |
131 | | - s3://tob-amp-ci-results/recompile/ |
132 | | -
|
133 | | - tool_run_scripts/slack.py \ |
134 | | - --msg "Uploaded recompilation results to ${url_base}/recompile/recompile-ci-${datenow}.tar.xz" |
135 | | - fi |
136 | | - env: |
137 | | - AWS_ACCESS_KEY_ID: ${{ secrets.DO_SPACES_KEY_ID }} |
138 | | - AWS_SECRET_ACCESS_KEY: ${{ secrets.DO_SPACES_SECRET }} |
139 | | - SLACK_HOOK: ${{ secrets.SLACK_HOOK }} |
| 1 | +#name: Run AnghaBench CI Cron Jobs |
| 2 | +# |
| 3 | +#on: |
| 4 | +# # Run this workflow every day at 3am |
| 5 | +# schedule: |
| 6 | +# - cron: "0 3 * * *" |
| 7 | +# |
| 8 | +#jobs: |
| 9 | +# do-the-job: |
| 10 | +# strategy: |
| 11 | +# fail-fast: false |
| 12 | +# matrix: |
| 13 | +# llvm: [ '16' ] |
| 14 | +# run_size: [ '1k' ] |
| 15 | +# |
| 16 | +# name: Run AnghaBench CI (AMD64) |
| 17 | +# runs-on: gha-ubuntu-32 |
| 18 | +# steps: |
| 19 | +# - uses: actions/checkout@v2 |
| 20 | +# with: |
| 21 | +# ref: ${{ github.event.workflow_run.head_branch }} |
| 22 | +# submodules: true |
| 23 | +# # https://stackoverflow.com/questions/58033366/how-to-get-current-branch-within-github-actions |
| 24 | +# - name: Extract branch name |
| 25 | +# shell: bash |
| 26 | +# run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" |
| 27 | +# id: extract_branch |
| 28 | +# - name: Set up Python ${{ matrix.python-version }} |
| 29 | +# uses: actions/setup-python@v4 |
| 30 | +# with: |
| 31 | +# python-version: 3.8 |
| 32 | +# - name: Fix github token auth |
| 33 | +# shell: bash |
| 34 | +# env: |
| 35 | +# ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} |
| 36 | +# run: | |
| 37 | +# export HOME=${HOME:-/root} |
| 38 | +# git config --global user.name "CI User" && git config --global user.email "ci@none.local" |
| 39 | +# git config --global url."https://${ACCESS_TOKEN}@github.com/".insteadOf "git@github.com:" |
| 40 | +# - name: Set up pre-requisies |
| 41 | +# run: | |
| 42 | +# sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get -qqy upgrade |
| 43 | +# sudo apt-get install -qqy \ |
| 44 | +# git curl wget unzip xz-utils pixz jq s3cmd ninja-build pkg-config \ |
| 45 | +# liblzma-dev zlib1g-dev libtinfo-dev build-essential \ |
| 46 | +# libc6-dev:i386 libstdc++-*-dev:i386 g++-multilib |
| 47 | +# wget "https://github.com/Kitware/CMake/releases/download/v3.22.3/cmake-3.22.3-linux-$(uname -m).sh" && \ |
| 48 | +# sudo /bin/bash cmake-*.sh --skip-license --prefix=/usr/local && rm cmake-*.sh |
| 49 | +# python3 -m pip install requests |
| 50 | +# - name: Build rellic against LLVM ${{ matrix.llvm }} |
| 51 | +# run: | |
| 52 | +# ./scripts/build.sh \ |
| 53 | +# --install \ |
| 54 | +# --extra-cmake-args "-DCMAKE_BUILD_TYPE=Release" \ |
| 55 | +# --download-dir "$(pwd)/../pre-built-llvm-${{ matrix.llvm }}" \ |
| 56 | +# --llvm-version ${{ matrix.llvm }} \ |
| 57 | +# - name: Fetch Angha Data for LLVM {{ matrix.llvm }} |
| 58 | +# run: | |
| 59 | +# pushd external/lifting-tools-ci |
| 60 | +# if [[ -f requirements.txt ]] |
| 61 | +# then |
| 62 | +# python3 -m pip install -r requirements.txt |
| 63 | +# fi |
| 64 | +# |
| 65 | +# mkdir -p $(pwd)/decompiled |
| 66 | +# mkdir -p $(pwd)/recompiled |
| 67 | +# |
| 68 | +# datasets/fetch_anghabench.sh --clang "${LLVM_VERSION}" --bitcode --run-size "${RUN_SIZE}" |
| 69 | +# |
| 70 | +# for i in *.tar.xz |
| 71 | +# do |
| 72 | +# tar -xJf $i |
| 73 | +# done |
| 74 | +# popd |
| 75 | +# env: |
| 76 | +# LLVM_VERSION: ${{ matrix.llvm }} |
| 77 | +# RUN_SIZE: ${{ matrix.run_size }} |
| 78 | +# |
| 79 | +# - name: Run Angha Against LLVM {{ matrix.llvm }} |
| 80 | +# run: | |
| 81 | +# |
| 82 | +# pushd external/lifting-tools-ci |
| 83 | +# # Run the benchmark |
| 84 | +# tool_run_scripts/rellic.py \ |
| 85 | +# --run-name "[${RUN_NAME}] [size: ${RUN_SIZE}] [rellic: ${RELLIC_BRANCH}]" \ |
| 86 | +# --rellic rellic-decomp \ |
| 87 | +# --input-dir $(pwd)/bitcode \ |
| 88 | +# --output-dir $(pwd)/decompiled \ |
| 89 | +# --slack-notify |
| 90 | +# |
| 91 | +# # Try to recompile our decompiled code |
| 92 | +# tool_run_scripts/recompile.py \ |
| 93 | +# --run-name "[${RUN_NAME}] [size: ${RUN_SIZE}] [recompile]" \ |
| 94 | +# --clang clang-${LLVM_VERSION} \ |
| 95 | +# --input-dir $(pwd)/decompiled \ |
| 96 | +# --output-dir $(pwd)/recompiled \ |
| 97 | +# --slack-notify |
| 98 | +# env: |
| 99 | +# RUN_SIZE: ${{ matrix.run_size }} |
| 100 | +# RELLIC_BRANCH: ${{ steps.extract_branch.outputs.branch }} |
| 101 | +# RUN_NAME: "Rellic Cron Job CI Run" |
| 102 | +# SLACK_HOOK: ${{ secrets.SLACK_HOOK }} |
| 103 | +# DO_TOKEN: ${{ secrets.DO_TOKEN }} |
| 104 | +# LLVM_VERSION: ${{ matrix.llvm }} |
| 105 | +# |
| 106 | +# - name: Save Angha Run for LLVM {{ matrix.llvm }} |
| 107 | +# run: | |
| 108 | +# # AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY passed in from original invocation environment |
| 109 | +# if [[ "${AWS_ACCESS_KEY_ID,,}" != "" ]] |
| 110 | +# then |
| 111 | +# datenow=$(date +'%F-%H-%M') |
| 112 | +# url_base="https://tob-amp-ci-results.nyc3.digitaloceanspaces.com" |
| 113 | +# tar -Ipixz -cf rellic-ci-${datenow}.tar.xz decompiled |
| 114 | +# tar -Ipixz -cf recompile-ci-${datenow}.tar.xz recompiled |
| 115 | +# |
| 116 | +# s3cmd -c /dev/null \ |
| 117 | +# '--host-bucket=%(bucket)s.nyc3.digitaloceanspaces.com' \ |
| 118 | +# --acl-public \ |
| 119 | +# put \ |
| 120 | +# rellic-ci-${datenow}.tar.xz \ |
| 121 | +# s3://tob-amp-ci-results/rellic/ |
| 122 | +# |
| 123 | +# tool_run_scripts/slack.py \ |
| 124 | +# --msg "Uploaded rellic decompilation results to ${url_base}/rellic/rellic-ci-${datenow}.tar.xz" |
| 125 | +# |
| 126 | +# s3cmd -c /dev/null \ |
| 127 | +# '--host-bucket=%(bucket)s.nyc3.digitaloceanspaces.com' \ |
| 128 | +# --acl-public \ |
| 129 | +# put \ |
| 130 | +# recompile-ci-${datenow}.tar.xz \ |
| 131 | +# s3://tob-amp-ci-results/recompile/ |
| 132 | +# |
| 133 | +# tool_run_scripts/slack.py \ |
| 134 | +# --msg "Uploaded recompilation results to ${url_base}/recompile/recompile-ci-${datenow}.tar.xz" |
| 135 | +# fi |
| 136 | +# env: |
| 137 | +# AWS_ACCESS_KEY_ID: ${{ secrets.DO_SPACES_KEY_ID }} |
| 138 | +# AWS_SECRET_ACCESS_KEY: ${{ secrets.DO_SPACES_SECRET }} |
| 139 | +# SLACK_HOOK: ${{ secrets.SLACK_HOOK }} |
0 commit comments