1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/serverless-devs-Serverless-Devs

Клонировать/Скачать
cicd.md 15 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 24.05.2025 16:44 c46f8bb
title description position category
Интеграция с платформами CI/CD
Интеграция с платформой CI/CD Serverless Devs
5
Обзор

Интеграция с платформами CI/CD

Интеграция с GitHub Actions

В файле YAML для GitHub Actions можно добавить соответствующие команды для загрузки, настройки и выполнения команд Serverless Devs.

Например, файл .github/workflows/publish.yml в репозитории может содержать следующий код:

name: CI/CD проекта Serverless Devs

on:
  push:
    branches: [master]

jobs:
  serverless-devs-cd:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: 12
          registry-url: https://registry.npmjs.org/
      - run: npm install
      - run: npm install -g @serverless-devs/s
      - run: s config add --AccessKeyID ${{secrets.AccessKeyID}} --AccessKeySecret ${{secrets.AccessKeySecret}} -a default -f
      - run: s deploy -y --use-local

Основные части содержания:

  • run: npm install -g @serverless-devs/s:
    Установка последней версии инструментов разработки Serverless Devs с помощью NPM;
  • run: s config add --AccessKeyID ${{secrets.AccessKeyID}} --AccessKeySecret ${{secrets.AccessKeySecret}} -a default -f:
    Настройка ключей и других данных с помощью команды config;
  • run: s deploy -y --use-local:
    Выполнение команд, таких как deploy для развертывания проекта или build для сборки.

Настройка ключейДанные ключей получают с помощью ${{secrets.*}}. Поэтому необходимо настроить ключи и соответствующие им Key в GitHub Secrets. Например, в приведенном выше примере, ключи AccessKeyID и AccessKeySecret должны быть настроены следующим образом:1. Настройка ключей в Github Secrets:

  1. Создание нескольких пар ключей: Например, в данном примере настроено три пары ключей:

    Секции, связанные с конфигурацией ключей, см. в конце замечаний

Интеграция с Gitee Go

После запуска службы Gitee Go, в файле YAML для CI/CD можно добавить возможности для загрузки, конфигурации и выполнения команд Serverless Devs.

Например, в репозитории можно создать файл для CI/CD, содержащий следующий текст:

name: serverless-devs
displayName: 'Проект Serverless Devs CI/CD'
triggers: # Конфигурация триггеров CI/CD
  push: # Установка триггера для ветки master при пуше кода
    - matchType: PRECISE
      branch: master
commitMessage: '' # Выполнение CI/CD на основе соответствия CommitMessage
stages: # Конфигурация этапов CI/CD
  - stage: # Определение этапа с ID deploy-stage и названием «Deploy Stage»
      name: deploy-stage
      displayName: 'Deploy Stage'
      failFast: false # Разрешение быстрого завершения при неудаче
```      steps: # Конфигурация шагов CI/CD
        - step: npmbuild@1 # Использование npm для компиляции
          name: deploy-step # Определение шага с ID deploy-step и названием «Deploy Step»
          displayName: 'Deploy Step'
          inputs: # Конфигурация входных параметров
            nodeVersion: 14.15 # Указание версии node 14.15
            goals: | # Установка зависимостей, конфигурации темы, параметров и публикации
              node -v
              npm -v
              npm install -g @serverless-devs/s
              s config add --AccessKeyID $ACCESSKEYID --AccessKeySecret $ACCESSKEYSECRET -a default -f
              s deploy -y --use-localОсновные части содержат:

- `npm install -g @serverless-devs/s`:  
  Установка последней версии инструментов разработки Serverless Devs через npm;
- `s config add --AccessKeyID $ACCESSKEYID --AccessKeySecret $ACCESSKEYSECRET -a default -f`  
  Конфигурация ключей и других данных через команду `config`;
- `s deploy -y --use-local`  
  Выполнение команд, таких как `deploy` для развертывания проекта или `build` для сборки;

Конфигурация ключей: Получение ключей осуществляется через `$*`, поэтому необходимо настроить ключи и соответствующие им `Key` в переменных окружения Gitee. Например, в приведенном выше примере, ключи `ACCESSKEYID` и `ACCESSKEYSECRET` должны быть настроены в переменных окружения.1. Найдите управление переменными окружения в Gitee
   ![](https://user-images.githubusercontent.com/21079031/124716639-e5b4ee00-df36-11eb-9dc8-cf2d8eb30e51.png)

2. Мы создаем несколько пар ключей:
   ![](https://user-images.githubusercontent.com/21079031/124719394-aa67ee80-df39-11eb-84ad-944ccf0486ba.png)
   Например, здесь я настроил три пары ключей:
   ![](https://user-images.githubusercontent.com/21079031/124719496-c9ff1700-df39-11eb-8ef6-4ccae28caefc.png)

> Важные замечания по настройке ключей можно найти в конце документа [внимание](#внимание)

## Интеграция с Jenkins

Перед интеграцией Serverless Devs в Jenkins, необходимо установить и запустить Jenkins на основе [официального сайта Jenkins](https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/).

После запуска Jenkins локально, перейдите по ссылке `http://localhost:8080` через браузер и выполните базовые настройки. Затем добавьте новые учетные данные (Credentials), как показано на следующем рисунке:![](https://img.alicdn.com/imgextra/i2/O1CN01tSgoo71Ne62AMGxqh_!!6000000001594-2-tps-3582-1048.png)

Теперь вы можете добавить ключи, в зависимости от ваших потребностей. Например, для Alibaba Cloud добавьте три глобальные учетные записи:

jenkins-alicloud-access-key-id : идентификатор ключа доступа Alibaba Cloud jenkins-alicloud-access-key-secret : секретный ключ доступа Alibaba Cloud


> Учебник по добавлению учетных данных можно найти [здесь](https://www.jenkins.io/zh/doc/book/using/using-credentials/).

Теперь можно доработать свой проект Serverless Devs:

- Создайте файл `Jenkinsfile`

pipeline { agent { docker { image 'maven:3.3-jdk-8' } }

  environment {
      ALICLOUD_ACCESS = 'default'
      ALICLOUD_ACCESS_KEY_ID     = credentials('jenkins-alicloud-access-key-id')
      ALICLOUD_ACCESS_KEY_SECRET     = credentials('jenkins-alicloud-access-key-secret')
  }

  stages {
      stage('Setup') {
          steps {
              sh 'scripts/setup.sh'
          }
      }
  }

}


Основные части включают:

- раздел `environment`, который содержит настройки ключей, добавленных выше;
- раздел `stages`, где выполняется команда `sh 'scripts/setup.sh'`, которая запускает файл `scripts/setup.sh` для подготовки и настройки.

Подготовьте файл `scripts/setup.sh`. Для этого просто создайте этот файл в проекте:

```shell script
#!/usr/bin/env bash

echo $(pwd)
curl -o- -L http://cli.so/install.sh | bash

source ~/.bashrc

echo $ALICLOUD_ACCOUNT_ID
s config add --AccessKeyID $ALICLOUD_ACCESS_KEY_ID --AccessKeySecret $ALICLOUD_ACCESS_KEY_SECRET -a $ALICLOUD_ACCESS

(cd code && mvn package && echo $(pwd))

s deploy -y --use-local --access $ALICLOUD_ACCESS

В этом файле содержатся следующие части: - curl -o- -L http://cli.so/install.sh | bash
Скачивание и установка инструментов Serverless Devs

  • s config add --AccessKeyID $ALICLOUD_ACCESS_KEY_ID --AccessKeySecret $ALICLOUD_ACCESS_KEY_SECRET -a $ALICLOUD_ACCESS
    Конфигурация ключей доступа и других данных
  • s deploy -y --use-local --access $ALICLOUD_ACCESS
    Выполнение команд, таких как развертывание проекта с помощью deploy или сборка с помощью build

После настройки ключей доступа можно создать Jenkins-пайплайн, источником которого является целевой GitHub-адрес. Затем можно запустить Jenkins-пайплайн, и после завершения выполнения вы получите соответствующие результаты.

В части настройки ключей доступа обратите внимание на внимание к деталям

Интеграция с Cloud Efficiency

  • В пайплайне Cloud Efficiency выберите инструменты Serverless Devs

  • При первом использовании необходимо настроить подключение к службе (если не настроено, рядом с добавлением подключения к службе будет красный восклицательный знак)

  • В пользовательских командах введите следующее:

# введите вашу команду здесь
npm install -g @serverless-devs/s
s config add --AccessKeyID ${ACCESSKEYID} --AccessKeySecret ${ACCESSKEYSECRET} -a default -f
s deploy -y --use-local
```Здесь содержатся три основные части:

- `npm install -g @serverless-devs/s`:  
   Установка последней версии инструментов разработки Serverless Devs с помощью NPM (хотя версия уже присутствует в Yunxiao, она может быть устаревшей, поэтому можно использовать этот команд для установки последней версии);
- `s config add --AccessKeyID ${ACCESSKEYID} --AccessKeySecret ${ACCESSKEYSECRET} -a default -f`:  
   Конфигурация ключей доступа и других данных с помощью команды `config`;
- `s deploy -y --use-local`:  
   Выполнение команд, таких как развертывание проекта с помощью команды `deploy` или сборка проекта с помощью команды `build`.![изображение](https://user-images.githubusercontent.com/21079031/144697943-2ce9ea56-7af8-4c3b-945b-6897e6d744b5.png)

Так как в команде используются два важных переменных окружения: `ACCESSKEYID`, `ACCESSKEYSECRET`, необходимо добавить подобные значения в переменные окружения:

![изображение](https://user-images.githubusercontent.com/21079031/144699074-3dad63d7-835f-4eb8-bd95-662de683dbbc.png)

## Важные моменты

- При настройке ключей используется команда `s config add --AccessKeyID ${ACCESSKEYID} --AccessKeySecret ${ACCESSKEYSECRET} -a default -f`, где `-a default` представляет собой псевдоним для ключа, который должен совпадать с псевдонимом ключа, заданным в проекте, например, в поле `access` файла `s.yaml`; `-f` указывает на то, что если ключ с таким же псевдонимом уже существует, он будет заменен, чтобы избежать проблем с конфигурацией.
- Если текущее приложение требует развертывания на разных платформах или аккаунтах, может потребоваться настройка нескольких ключей. В этом случае каждому ключу следует присвоить уникальный псевдоним, который затем используется в файле `s.yaml`.
- Для более гибкой настройки ключей можно использовать параметры `-il` и `-kl`, например, для настройки двух пар ключей и использования пользовательских ключей:
  ```yaml
  s config add -kl tempToken1,tempToken2 -il tempValue1,tempValue2 -a website_access
  s config add -kl tempToken3,tempToken4 -il tempValue3,tempValue4 -a fc_access

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/serverless-devs-Serverless-Devs.git
git@api.gitlife.ru:oschina-mirror/serverless-devs-Serverless-Devs.git
oschina-mirror
serverless-devs-Serverless-Devs
serverless-devs-Serverless-Devs
master