Philippe Mathieu-Daudé | 0a9487d | 2021-07-21 00:27:03 +0100 | [diff] [blame] | 1 | # All jobs needing docker-opensbi must use the same rules it uses. |
| 2 | .opensbi_job_rules: |
| 3 | rules: # Only run this job when ... |
Bin Meng | c6fc0fc | 2020-02-24 05:39:44 -0800 | [diff] [blame] | 4 | - changes: |
Philippe Mathieu-Daudé | 0a9487d | 2021-07-21 00:27:03 +0100 | [diff] [blame] | 5 | # this file is modified |
Thomas Huth | 5117ba2 | 2020-07-01 14:56:31 +0100 | [diff] [blame] | 6 | - .gitlab-ci.d/opensbi.yml |
Philippe Mathieu-Daudé | 0a9487d | 2021-07-21 00:27:03 +0100 | [diff] [blame] | 7 | # or the Dockerfile is modified |
Bin Meng | c6fc0fc | 2020-02-24 05:39:44 -0800 | [diff] [blame] | 8 | - .gitlab-ci.d/opensbi/Dockerfile |
Philippe Mathieu-Daudé | c217fd8 | 2021-07-27 16:24:31 +0200 | [diff] [blame] | 9 | when: on_success |
Philippe Mathieu-Daudé | 0a9487d | 2021-07-21 00:27:03 +0100 | [diff] [blame] | 10 | - changes: # or roms/opensbi/ is modified (submodule updated) |
| 11 | - roms/opensbi/* |
Philippe Mathieu-Daudé | c217fd8 | 2021-07-27 16:24:31 +0200 | [diff] [blame] | 12 | when: on_success |
Philippe Mathieu-Daudé | 0a9487d | 2021-07-21 00:27:03 +0100 | [diff] [blame] | 13 | - if: '$CI_COMMIT_REF_NAME =~ /^opensbi/' # or the branch/tag starts with 'opensbi' |
Philippe Mathieu-Daudé | c217fd8 | 2021-07-27 16:24:31 +0200 | [diff] [blame] | 14 | when: on_success |
Philippe Mathieu-Daudé | 0a9487d | 2021-07-21 00:27:03 +0100 | [diff] [blame] | 15 | - if: '$CI_COMMIT_MESSAGE =~ /opensbi/i' # or last commit description contains 'OpenSBI' |
Philippe Mathieu-Daudé | c217fd8 | 2021-07-27 16:24:31 +0200 | [diff] [blame] | 16 | when: on_success |
Philippe Mathieu-Daudé | 0a9487d | 2021-07-21 00:27:03 +0100 | [diff] [blame] | 17 | |
| 18 | docker-opensbi: |
| 19 | extends: .opensbi_job_rules |
| 20 | stage: containers |
Bin Meng | c6fc0fc | 2020-02-24 05:39:44 -0800 | [diff] [blame] | 21 | image: docker:19.03.1 |
| 22 | services: |
| 23 | - docker:19.03.1-dind |
| 24 | variables: |
| 25 | GIT_DEPTH: 3 |
| 26 | IMAGE_TAG: $CI_REGISTRY_IMAGE:opensbi-cross-build |
| 27 | # We don't use TLS |
| 28 | DOCKER_HOST: tcp://docker:2375 |
| 29 | DOCKER_TLS_CERTDIR: "" |
| 30 | before_script: |
| 31 | - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY |
| 32 | script: |
| 33 | - docker pull $IMAGE_TAG || true |
| 34 | - docker build --cache-from $IMAGE_TAG --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA |
| 35 | --tag $IMAGE_TAG .gitlab-ci.d/opensbi |
| 36 | - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA |
| 37 | - docker push $IMAGE_TAG |
| 38 | |
| 39 | build-opensbi: |
Philippe Mathieu-Daudé | 0a9487d | 2021-07-21 00:27:03 +0100 | [diff] [blame] | 40 | extends: .opensbi_job_rules |
Daniel P. Berrangé | d0caa0a | 2020-07-01 14:56:32 +0100 | [diff] [blame] | 41 | stage: build |
Philippe Mathieu-Daudé | 91e9c47 | 2021-03-03 14:06:46 +0100 | [diff] [blame] | 42 | needs: ['docker-opensbi'] |
Bin Meng | c6fc0fc | 2020-02-24 05:39:44 -0800 | [diff] [blame] | 43 | artifacts: |
| 44 | paths: # 'artifacts.zip' will contains the following files: |
Bin Meng | a52ea3e | 2020-05-01 21:30:54 +0800 | [diff] [blame] | 45 | - pc-bios/opensbi-riscv32-generic-fw_dynamic.bin |
Bin Meng | a52ea3e | 2020-05-01 21:30:54 +0800 | [diff] [blame] | 46 | - pc-bios/opensbi-riscv64-generic-fw_dynamic.bin |
Bin Meng | a52ea3e | 2020-05-01 21:30:54 +0800 | [diff] [blame] | 47 | - opensbi32-generic-stdout.log |
| 48 | - opensbi32-generic-stderr.log |
| 49 | - opensbi64-generic-stdout.log |
| 50 | - opensbi64-generic-stderr.log |
Bin Meng | c6fc0fc | 2020-02-24 05:39:44 -0800 | [diff] [blame] | 51 | image: $CI_REGISTRY_IMAGE:opensbi-cross-build |
| 52 | variables: |
| 53 | GIT_DEPTH: 3 |
| 54 | script: # Clone the required submodules and build OpenSBI |
| 55 | - git submodule update --init roms/opensbi |
| 56 | - export JOBS=$(($(getconf _NPROCESSORS_ONLN) + 1)) |
| 57 | - echo "=== Using ${JOBS} simultaneous jobs ===" |
| 58 | - make -j${JOBS} -C roms/opensbi clean |
Bin Meng | a52ea3e | 2020-05-01 21:30:54 +0800 | [diff] [blame] | 59 | - make -j${JOBS} -C roms opensbi32-generic 2>&1 1>opensbi32-generic-stdout.log | tee -a opensbi32-generic-stderr.log >&2 |
Bin Meng | c6fc0fc | 2020-02-24 05:39:44 -0800 | [diff] [blame] | 60 | - make -j${JOBS} -C roms/opensbi clean |
Bin Meng | a52ea3e | 2020-05-01 21:30:54 +0800 | [diff] [blame] | 61 | - make -j${JOBS} -C roms opensbi64-generic 2>&1 1>opensbi64-generic-stdout.log | tee -a opensbi64-generic-stderr.log >&2 |