Skip to content

Commit

Permalink
Use BuildJet runners for eden workflow
Browse files Browse the repository at this point in the history
This commit changes runners of composite `test.yml` workflow to BuildJet
runners. They are more powerful and cheaper that the ones provided by GitHub.

In case somebody would want to run these workflows in their local fork runner
and repository to pull eden code from has been parametrized

Note that this workflow is used by EVE repository.

Switching to BuildJet runners and using new workflow should reduce time to
run tests from 6 hours to approx. 1.5 hours.

Documentation is available at `docs/github-actions.md`

However, there are still some tests failing which needs further investigation

Signed-off-by: Pavel Abramov <uncle.decart@gmail.com>
  • Loading branch information
uncleDecart committed Sep 26, 2023
1 parent 0187c3c commit 2a29104
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 12 deletions.
36 changes: 24 additions & 12 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,22 @@ on:
inputs:
eve_image:
type: string
runner:
type: string
default: buildjet-4vcpu-ubuntu-2204
repo:
type: string
default: "lf-edge/eden"
workflow_call:
inputs:
eve_image:
type: string
runner:
type: string
default: buildjet-4vcpu-ubuntu-2204
repo:
type: string
default: "lf-edge/eden"

jobs:
smoke:
Expand All @@ -19,12 +31,12 @@ jobs:
file_system: ['ext4', 'zfs']
tpm: [true, false]
name: Smoke tests
runs-on: ubuntu-22.04
runs-on: ${{ inputs.runner }}
steps:
- name: Get code
uses: actions/checkout@v3
with:
repository: "lf-edge/eden"
repository: ${{ inputs.repo }}
path: "./eden"
- name: Run Smoke tests
uses: ./eden/.github/actions/run-eden-test
Expand All @@ -37,12 +49,12 @@ jobs:
networking:
name: Networking test suite
needs: smoke
runs-on: ubuntu-22.04
runs-on: ${{ inputs.runner }}
steps:
- name: Get code
uses: actions/checkout@v3
with:
repository: "lf-edge/eden"
repository: ${{ inputs.repo }}
path: "./eden"
- name: Run Networking tests
uses: ./eden/.github/actions/run-eden-test
Expand All @@ -59,12 +71,12 @@ jobs:
file_system: ['ext4', 'zfs']
name: Storage test suite
needs: smoke
runs-on: ubuntu-22.04
runs-on: ${{ inputs.runner }}
steps:
- name: Get code
uses: actions/checkout@v3
with:
repository: "lf-edge/eden"
repository: ${{ inputs.repo }}
path: "./eden"
- name: Run Storage tests
uses: ./eden/.github/actions/run-eden-test
Expand All @@ -77,12 +89,12 @@ jobs:
lpc-loc:
name: LPC LOC test suite
needs: smoke
runs-on: ubuntu-22.04
runs-on: ${{ inputs.runner }}
steps:
- name: Get code
uses: actions/checkout@v3
with:
repository: "lf-edge/eden"
repository: ${{ inputs.repo }}
path: "./eden"
- name: Run LPC LOC tests
uses: ./eden/.github/actions/run-eden-test
Expand All @@ -99,12 +111,12 @@ jobs:
file_system: ['ext4', 'zfs']
name: EVE upgrade test suite
needs: smoke
runs-on: ubuntu-22.04
runs-on: ${{ inputs.runner }}
steps:
- name: Get code
uses: actions/checkout@v3
with:
repository: "lf-edge/eden"
repository: ${{ inputs.repo }}
path: "./eden"
- name: Run EVE upgrade tests
uses: ./eden/.github/actions/run-eden-test
Expand All @@ -117,12 +129,12 @@ jobs:
user-apps:
name: User apps test suite
needs: smoke
runs-on: ubuntu-22.04
runs-on: ${{ inputs.runner }}
steps:
- name: Get code
uses: actions/checkout@v3
with:
repository: "lf-edge/eden"
repository: ${{ inputs.repo }}
path: "./eden"
- name: Run User apps upgrade tests
uses: ./eden/.github/actions/run-eden-test
Expand Down
7 changes: 7 additions & 0 deletions docs/github-actions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Github Actions

Eden is a part of testing infrastructure of EVE and it's integrated in EVE CI/CD pipelines. EVE uses [test.yml](https://github.com/lf-edge/eden/blob/master/.github/workflows/test.yml) reusable workflow to run eden tests against specific EVE version in PR.
Eden reusable workflows are running using [BuildJet](https://buildjet.com/for-github-actions) runners provided by LF-EDGE. They provide both Arm and x86_64 architectures.
Currently we are provided with 4vCPU/16GBs of RAM and 8vCPU/32GBs of RAM runners. Maximum CPUs running in parallel is 64 for x86_64, that means with 4vCPUs we can have 16 jobs running in parallel.
In case one wants to run eden workflows locally in their own fork, `runner` and `repo` input variables for reusable workflow should be specified.

0 comments on commit 2a29104

Please sign in to comment.