103 lines
3.3 KiB
YAML
103 lines
3.3 KiB
YAML
name: Auto-Sync
|
|
on:
|
|
push:
|
|
paths:
|
|
- "suite/auto-sync/**"
|
|
- ".github/workflows/auto-sync.yml"
|
|
pull_request:
|
|
|
|
# Stop previous runs on the same branch on new push
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
check:
|
|
runs-on: ubuntu-24.04
|
|
defaults:
|
|
run:
|
|
working-directory: suite/auto-sync/
|
|
steps:
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Check out repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Install auto-sync package
|
|
run: |
|
|
pip install .
|
|
|
|
- name: Check formatting
|
|
run: |
|
|
python3.11 -m black --check src/autosync
|
|
|
|
- name: Install llvm-mc
|
|
run: |
|
|
sudo apt install llvm-18
|
|
llvm-mc-18 --version
|
|
FileCheck-18 --version
|
|
sudo ln -s $(whereis -b llvm-mc-18 | grep -Eo "/.*") /usr/local/bin/llvm-mc
|
|
sudo ln -s $(whereis -b FileCheck-18 | grep -Eo "/.*") /usr/local/bin/FileCheck
|
|
llvm-mc --version
|
|
FileCheck --version
|
|
|
|
- name: Clone llvm-capstone
|
|
run: |
|
|
git clone https://github.com/capstone-engine/llvm-capstone.git vendor/llvm_root
|
|
|
|
- name: Build llvm-tblgen
|
|
run: |
|
|
cd vendor/llvm_root
|
|
mkdir build
|
|
cd build
|
|
cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug ../llvm
|
|
cmake --build . --target llvm-tblgen --config Debug
|
|
cd ../../../
|
|
|
|
- name: Test Header patcher
|
|
run: |
|
|
python -m unittest src/autosync/Tests/test_header_patcher.py
|
|
python -m unittest src/autosync/Tests/test_mcupdater.py
|
|
|
|
- name: Remove llvm-mc
|
|
run: |
|
|
sudo apt remove llvm-18
|
|
sudo rm /usr/local/bin/llvm-mc
|
|
sudo rm /usr/local/bin/FileCheck
|
|
|
|
- name: Test generation of inc files
|
|
run: |
|
|
./src/autosync/ASUpdater.py -d -a AArch64 -s IncGen
|
|
./src/autosync/ASUpdater.py -d -a Alpha -s IncGen
|
|
./src/autosync/ASUpdater.py -d -a ARM -s IncGen
|
|
./src/autosync/ASUpdater.py -d -a PPC -s IncGen
|
|
./src/autosync/ASUpdater.py -d -a LoongArch -s IncGen
|
|
./src/autosync/ASUpdater.py -d -a Mips -s IncGen
|
|
./src/autosync/ASUpdater.py -d -a SystemZ -s IncGen
|
|
./src/autosync/ASUpdater.py -d -a Xtensa -s IncGen
|
|
./src/autosync/ASUpdater.py -d -a TriCore -s IncGen
|
|
|
|
- name: CppTranslator - Patch tests
|
|
run: |
|
|
python -m unittest src/autosync/cpptranslator/Tests/test_patches.py
|
|
|
|
- name: CppTranslator - Differ tests
|
|
run: |
|
|
python -m unittest src/autosync/cpptranslator/Tests/test_differ.py
|
|
|
|
- name: CppTranslator - Test translation
|
|
run: |
|
|
./src/autosync/ASUpdater.py --ci -d -a AArch64 -s Translate
|
|
./src/autosync/ASUpdater.py --ci -d -a ARM -s Translate
|
|
./src/autosync/ASUpdater.py --ci -d -a PPC -s Translate
|
|
./src/autosync/ASUpdater.py --ci -d -a LoongArch -s Translate
|
|
./src/autosync/ASUpdater.py --ci -d -a Mips -s Translate
|
|
./src/autosync/ASUpdater.py --ci -d -a SystemZ -s Translate
|
|
./src/autosync/ASUpdater.py --ci -d -a Xtensa -s Translate
|
|
./src/autosync/ASUpdater.py --ci -d -a TriCore -s Translate
|