/ .forgejo / workflows / ci.yml
ci.yml
  1  name: CI
  2  
  3  on:
  4    push:
  5      branches: [main]
  6    pull_request:
  7      branches: [main]
  8  
  9  jobs:
 10    check:
 11      name: Check
 12      runs-on: native
 13      steps:
 14        - uses: actions/checkout@v4
 15          with:
 16            submodules: recursive
 17  
 18        - name: Setup dependencies
 19          run: |
 20            # Ensure alphavm, deltavm, alphaos, deltaos, acdc-core are available
 21            cd ..
 22            for repo in alphavm deltavm alphaos deltaos acdc-core; do
 23              if [ ! -d "$repo" ]; then
 24                echo "Cloning $repo..."
 25                git clone --depth 1 https://code.ac-dc.network/Alpha-Delta-Network/$repo.git
 26              fi
 27            done
 28  
 29        - name: Cargo check
 30          run: cargo check --workspace
 31  
 32    build:
 33      name: Build
 34      runs-on: native
 35      needs: check
 36      steps:
 37        - uses: actions/checkout@v4
 38          with:
 39            submodules: recursive
 40  
 41        - name: Setup dependencies
 42          run: |
 43            cd ..
 44            for repo in alphavm deltavm alphaos deltaos acdc-core; do
 45              if [ ! -d "$repo" ]; then
 46                git clone --depth 1 https://code.ac-dc.network/Alpha-Delta-Network/$repo.git
 47              fi
 48            done
 49  
 50        - name: Build release
 51          run: cargo build --release
 52  
 53    test:
 54      name: Test
 55      runs-on: native
 56      needs: build
 57      timeout-minutes: 30
 58      steps:
 59        - uses: actions/checkout@v4
 60          with:
 61            submodules: recursive
 62  
 63        - name: Setup dependencies
 64          run: |
 65            cd ..
 66            for repo in alphavm deltavm alphaos deltaos acdc-core; do
 67              if [ ! -d "$repo" ]; then
 68                git clone --depth 1 https://code.ac-dc.network/Alpha-Delta-Network/$repo.git
 69              fi
 70            done
 71  
 72        - name: Run tests
 73          run: cargo test --release
 74  
 75    fmt:
 76      name: Format
 77      runs-on: native
 78      steps:
 79        - uses: actions/checkout@v4
 80  
 81        - name: Check formatting
 82          run: cargo fmt --all -- --check
 83  
 84    clippy:
 85      name: Clippy
 86      runs-on: native
 87      needs: check
 88      steps:
 89        - uses: actions/checkout@v4
 90          with:
 91            submodules: recursive
 92  
 93        - name: Setup dependencies
 94          run: |
 95            cd ..
 96            for repo in alphavm deltavm alphaos deltaos acdc-core; do
 97              if [ ! -d "$repo" ]; then
 98                git clone --depth 1 https://code.ac-dc.network/Alpha-Delta-Network/$repo.git
 99              fi
100            done
101  
102        - name: Run Clippy
103          run: cargo clippy --workspace -- -D warnings