DevGang
Авторизоваться

Использование GitHub Actions для проверенных сборок 

GitHub Actions обеспечивают очень простой способ для конвейеров GitOps, так как вам не нужен дополнительный инструмент CI/CD. Вы можете просто создать или использовать существующие GitHub Actions и настроить его на запуск при каждом обновлении определенной ветви.

Вы можете убедиться, что каждая сборка (т.e. контейнер) может быть проверена самым безопасным способом, нотариальное заверение CodeNotary является обязательным.

Давайте пройдемся по простым шагам по интеграции CodeNotary:

Создание GitHub secrets

Вы можете начать с добавления GitHub secrets для Dockerhub и CodeNotary в свой репозиторий.

Если у вас еще нет бесплатной учетной записи CodeNotary для настройки процесса нотариального заверения, начните с этого:

Создайте свой workflow

GitHub Actions определяются с использованием workflow, которые можно создавать в виде файлов в вашем хранилище в .github/workflows или с помощью пользовательского интерфейса и меню «Actions».

Workflow

Следующий workflow будет запускаться всякий раз, когда обнаруживается новая фиксация в главной ветви, создается инстанс контейнера, нотариально заверяется изображение и отправляется на Dockerhub.com.

Обязательно замените путь к контейнеру с вашим хранилищем учетной записи.

# Определяем, когда действия должны быть запущены
on:
 push:
   branches:
     - master
   tags:
     - "**"# Название рабочего процесса
name: "Continuous Deployment"# Объявляем Jobs
jobs:
 build:
   name: "Build and deploy"
   runs-on: ubuntu-latest # Определяем образ докер сборки

   env:
     DOCKER_IMAGE: dzlabsch/build-notarize-docker-action # Указываем путь к контейнеру

   steps:
     - name: "Checkout"
       uses: actions/checkout@v1.0.0

       - name: "Build Docker image"
       run: $(which docker) build --tag ${DOCKER_IMAGE}:latest .

     - name: "Download vcn"
       run: |
            curl -L -o /tmp/vcn https://github.com/vchain-us/vcn/releases/download/v0.7.3/vcn-v0.7.3-linux-amd64-static
            CHECKSUM=$(sha256sum /tmp/vcn | cut -d " " -f 1)
            echo $CHECKSUM
            curl -s https://api.codenotary.io/authenticate/$CHECKSUM?org=vchain.us | grep -q :0
            chmod +x /tmp/vcn
    
     - name: "Notarize Docker Image"
       run: |
            VCN_USER=${{ secrets.CODENOTARY_USER }}  VCN_PASSWORD=${{ secrets.CODENOTARY_PASS }} /tmp/vcn login
            VCN_NOTARIZATION_PASSWORD=${{ secrets.CODENOTARY_PASS }} /tmp/vcn n -p --attr GitHub="${GITHUB_SHA:0:7}" docker://${DOCKER_IMAGE}:latest

     - name: "Docker Login"
       if: "'refs/heads/master' == github.ref || startsWith(github.ref, 'refs/tags/')"
       run: echo ${{ secrets.DOCKER_PASSWORD }} | $(which docker) login --password-stdin --username ${{ secrets.DOCKER_USERNAME }}

     - name: "Push Docker image (latest)"
       if: "'refs/heads/master' == github.ref || startsWith(github.ref, 'refs/tags/')"
       run: $(which docker) push ${DOCKER_IMAGE}:latest

     - name: "Docker Logout"
       if: "'refs/heads/master' == github.ref || startsWith(github.ref, 'refs/tags/')"
       run: $(which docker) logout

Проверяем Workflow

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

Когда вы щелкаете по заголовку рабочего процесса, вы также можете проверить детали различных шагов.

и вы можете открыть каждую задачу индивидуально, чтобы проверить детали:

Аутентифицировать образ контейнера

Каждый, кто загружает и использует это нотариальный заверенный образ контейнера, может проверить его подлинность, используя CodeNotary vcn (vcn authenticate docker://image).

Он также может быть легко интегрирован в процесс развертывания.

#Docker
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать

Напиши статью и выиграй годовую подписку на Яндекс плюс или лицензию от Jet Brains

Участвовать