From 2a29104163eba8cd93b63e100e148888bef3cd25 Mon Sep 17 00:00:00 2001 From: Pavel Abramov Date: Mon, 31 Jul 2023 10:08:52 +0200 Subject: [PATCH] Use BuildJet runners for eden workflow 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 --- .github/workflows/test.yml | 36 ++++++++++++++++++++++++------------ docs/github-actions.md | 7 +++++++ 2 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 docs/github-actions.md diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f86bd26d8..b6abd93cc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -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: @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 diff --git a/docs/github-actions.md b/docs/github-actions.md new file mode 100644 index 000000000..d7d50e804 --- /dev/null +++ b/docs/github-actions.md @@ -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. +