title | description | position | category |
---|---|---|---|
Интеграция с платформами CI/CD |
Интеграция с платформой CI/CD Serverless Devs |
5 |
Обзор |
В файле 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
: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:Секции, связанные с конфигурацией ключей, см. в конце замечаний
После запуска службы 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

2. Мы создаем несколько пар ключей:

Например, здесь я настроил три пары ключей:

> Важные замечания по настройке ключей можно найти в конце документа [внимание](#внимание)
## Интеграция с Jenkins
Перед интеграцией Serverless Devs в Jenkins, необходимо установить и запустить Jenkins на основе [официального сайта Jenkins](https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/).
После запуска Jenkins локально, перейдите по ссылке `http://localhost:8080` через браузер и выполните базовые настройки. Затем добавьте новые учетные данные (Credentials), как показано на следующем рисунке:
Теперь вы можете добавить ключи, в зависимости от ваших потребностей. Например, для 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 выберите инструменты 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`.
Так как в команде используются два важных переменных окружения: `ACCESSKEYID`, `ACCESSKEYSECRET`, необходимо добавить подобные значения в переменные окружения:

## Важные моменты
- При настройке ключей используется команда `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 )