Просмотр исходного кода

Merge branch 'feature/upload_component' into 'master'

Add CI job to upload to the registry

See merge request espressif/esp-serial-flasher!32
Sergei Silnov 4 лет назад
Родитель
Сommit
e44d50e372
2 измененных файлов с 33 добавлено и 6 удалено
  1. 30 6
      .gitlab-ci.yml
  2. 3 0
      idf_component.yml

+ 30 - 6
.gitlab-ci.yml

@@ -1,9 +1,17 @@
 stages:
   - build
   - test
+  - deploy
+
+workflow:
+  rules:
+    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
+    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
+      when: never
+    - if: "$CI_COMMIT_BRANCH"
 
 variables:
-  IDF_REPO: https://gitlab-ci-token:${CI_JOB_TOKEN}@${IDF_MIRROR_HOST}/espressif/esp-idf.git
+  IDF_REPO: https://github.com/espressif/esp-idf.git
   STM32_CUBE_F4_REPO: https://github.com/STMicroelectronics/STM32CubeF4
   SERIAL_FLASHER_REPO: ${GITLAB_SSH_SERVER}/espressif/esp-serial-flasher.git
   QEMU_PATH: /opt/qemu/bin/qemu-system-xtensa
@@ -25,13 +33,15 @@ variables:
   tar -xjf gcc-arm-none-eabi.tar.bz2
   mv gcc-arm-none-eabi-* gcc-arm-none-eabi
 
-before_script:
-  # Use CI Tools
-  - curl -sSL ${CIT_LOADER_URL} | sh
-  - source citools/import_functions
-  - PATH=$CI_PROJECT_DIR/esp-idf/tools:$PATH
+.build_test_template:
+  before_script:
+    # Use CI Tools
+    - curl -sSL ${CIT_LOADER_URL} | sh
+    - source citools/import_functions
+    - PATH=$CI_PROJECT_DIR/esp-idf/tools:$PATH
 
 build_with_idf:
+  extends: .build_test_template
   stage: build
   image: $CI_DOCKER_REGISTRY/esp-env:v4.4-1
   tags:
@@ -50,6 +60,7 @@ build_with_idf:
     - cmake -DTOOLCHAIN_PREFIX=$CI_PROJECT_DIR/gcc-arm-none-eabi -DSTM32Cube_DIR=$CI_PROJECT_DIR/STM32CubeF4 .. && cmake --build .
 
 run_tests:
+  extends: .build_test_template
   stage: test
   image: ${CI_DOCKER_REGISTRY}/qemu:esp-develop-20191124
   tags:
@@ -60,3 +71,16 @@ run_tests:
     - export QEMU_PATH=/opt/qemu/bin/qemu-system-xtensa
     - ./run_test.sh qemu
     - ./run_test.sh host
+
+push_to_the_components_registry:
+  stage: deploy
+  image: python:3.10-alpine
+  tags:
+    - build
+    - internet
+  rules:
+    - if: '$CI_COMMIT_BRANCH == "master"'
+    - if: '$FORCE_PUSH_COMPONENT == "1"'
+  script:
+    - pip install idf-component-manager
+    - python -m idf_component_manager upload-component --allow-existing --name=esp-serial-flasher --namespace=espressif

+ 3 - 0
idf_component.yml

@@ -0,0 +1,3 @@
+version: "0.0.1"
+description: Serial flasher component provides portable library for flashing Espressif SoCs from other host microcontroller
+url: https://github.com/espressif/esp-serial-flasher