Skip to content

Re-organize compiler modules into a compiler directory #429

Re-organize compiler modules into a compiler directory

Re-organize compiler modules into a compiler directory #429

Workflow file for this run

name: CI
on:
push:
branches:
- main
paths:
- '.github/workflows/ci.yml'
- '**/*.cpp'
- '**/*.hpp'
- '**/CMakeLists.txt'
pull_request:
branches:
- main
paths:
- '.github/workflows/ci.yml'
- '**/*.cpp'
- '**/*.hpp'
- '**/CMakeLists.txt'
jobs:
code-style-check:
name: Code style check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: DoozyX/clang-format-lint-action@v0.17
with:
source: './compiler'
extensions: 'hpp,cpp'
clangFormatVersion: 17
build-gcc:
name: Build on Ubuntu GCC
runs-on: ubuntu-latest
needs: code-style-check
container:
image: ghcr.io/vla5924-practice/compiler-project/devcontainer:latest
options: --user root
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
steps:
- name: Initialize repository
uses: actions/checkout@v4
with:
submodules: true
- name: Build
run: |
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DENABLE_IR_GENERATOR=OFF
ninja -C build
- name: Archive binaries
run: tar cf binaries.tar -C build bin
- name: Upload binaries
uses: actions/upload-artifact@v4
with:
name: binaries-ubuntu-latest-gcc
path: binaries.tar
unit-test:
name: Unit test
runs-on: ubuntu-latest
needs: build-gcc
container:
image: ghcr.io/vla5924-practice/compiler-project/devcontainer:latest
options: --user root
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
steps:
- name: Download binaries
uses: actions/download-artifact@v4
with:
name: binaries-ubuntu-latest-gcc
- name: Extract binaries
run: tar xf binaries.tar
- name: Run ast_test
run: ./bin/ast_test
- name: Run backend_test
run: ./bin/backend_test