| 1 | name: riscv64 CI |
| 2 | |
| 3 | on: |
| 4 | workflow_dispatch: |
| 5 | push: |
| 6 | branches: |
| 7 | - master |
| 8 | paths-ignore: |
| 9 | - '**.md' |
| 10 | - '**.yml' |
| 11 | - '!**/riscv64_linux_ci.yml' |
| 12 | - 'cmd/tools/**' |
| 13 | - '!cmd/tools/builders/**.v' |
| 14 | pull_request: |
| 15 | paths-ignore: |
| 16 | - '**.md' |
| 17 | - '**.yml' |
| 18 | - '!**/riscv64_linux_ci.yml' |
| 19 | - 'cmd/tools/**' |
| 20 | - '!cmd/tools/builders/**.v' |
| 21 | |
| 22 | jobs: |
| 23 | riscv64_linux: |
| 24 | # The host should always be Linux |
| 25 | runs-on: ubuntu-24.04 |
| 26 | timeout-minutes: 30 |
| 27 | name: Build on ubuntu-24.04 riscv64 |
| 28 | steps: |
| 29 | - uses: actions/checkout@v6 |
| 30 | - uses: uraimo/run-on-arch-action@v3 |
| 31 | name: Run commands |
| 32 | id: runcmd |
| 33 | with: |
| 34 | arch: riscv64 |
| 35 | distro: ubuntu24.04 |
| 36 | base_image: --platform=linux/riscv64 riscv64/ubuntu:24.04 |
| 37 | # The token tag here is not required, but speeds up builds, |
| 38 | # by allowing caching of the installed dependencies, which is ~2.5min: |
| 39 | githubToken: ${{ github.token }} |
| 40 | shell: /bin/bash |
| 41 | install: | |
| 42 | apt-get update -q -y |
| 43 | apt-get install -q -y make gcc git file coreutils binutils |
| 44 | run: | |
| 45 | uname -a |
| 46 | make --version |
| 47 | gcc --version |
| 48 | ls -la |
| 49 | export LDFLAGS="-latomic" |
| 50 | export VFLAGS="-gc none -no-retry-compilation -cc cc" |
| 51 | make |
| 52 | file ./v |
| 53 | ls -la ./v |
| 54 | ./v test vlib/builtin vlib/os vlib/encoding/binary |
| 55 | ./v test vlib/v/slow_tests/assembly |
| 56 | VTEST_ONLY=closure ./v test vlib/v/tests |
| 57 | |