Github Actions 및 Akka Serverless와 지속적인 통합 및 제공 방법
6545 단어 devopslightbendserverless
Akka Serverless 기능 즉 서비스와 서버 없음 데이터베이스를 하나의 패키지에 통합하는 데 전념합니다.이 단일한 소프트웨어 패키지는 개발자들이 더 이상 데이터베이스를 걱정할 필요가 없기 때문에 코드에 더욱 관심을 가질 수 있게 한다.이 짧은 블로그 글에서 저는 GitHub Actions를 사용하여 Akka의 서버 없는 CI와 CD 작업 흐름을 자동화하는 것을 안내할 것입니다.
GitHub의 행동
CI/CD에서는
Docker Login, 생성된 용기를 Docker Hub(또는 지원되는 다른 Docker 레지스트리)에 발표할 수 있습니다
Docker Setup BuildxBuildKit를 사용하면 멀티플랫폼 이미지를 만들 수 있다(본문의 범위를 넘어선다)
Build and push Docker images 생성된 이미지를 Docker Hub
Akka Serverless CLI for GitHub Actions Akka에 서버 없음
Settings -> Secrets
에서 암호화된 환경 변수 4개를 만들었습니다.akkasls projects get <project name>
가 ID 열에 프로젝트의 ID를 표시함)akkasls auth tokens create --type=refresh --scopes=execution --description="My CI/CD token"
아마르
이 네 가지 비밀을 설정한 후 남은 유일한 일은 GitHub Actions YAML 설정을 만드는 것입니다.나는 먼저 완전한 문서부터 시작하여 모든 일의 작용을 몇 부분으로 나누어 설명할 것이다.이 파일은 저장소의 폴더
.github/workflows
에 저장되어야 합니다.전체 파일
내 예에서 나는 파일을
deploy.yaml
라고 명명하고 저장소의 .github/workflows
폴더에 저장했다.name: akkasls-deployer
on:
push:
branches: [main]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push to Docker Hub
uses: docker/build-push-action@v2
with:
push: true
tags: retgits/myapp:1.0.0
- name: Deploy to Akka Serverless
uses: retgits/akkasls-action@v1
with:
cmd: "services deploy myapp retgits/myapp:1.0.0"
env:
token: ${{ secrets.TOKEN }}
project: ${{ secrets.PROJECT }}
서류를 몇 부분으로 나누다
이제 파일 전체를 보실 수 있습니다. 파일의 작용을 더 작은 부분으로 나누어 설명하겠습니다.
name: akkasls-deployer
이것은 기본적으로 작업 흐름의 이름을 결정하는데, 이것이 바로 그것이 저장소의 작업 부분에 표시되는 방식이다
on:
push:
branches: [main]
workflow_dispatch:
작업 흐름의 on 부분에서 트리거나 작업 흐름의 실행 시간을 설명합니다.이 경우 분기push
가 나타나거나 워크플로우에서 트리거될 때마다main
설정이 완료되어 주 분기로 푸시되지 않고 워크플로우를 트리거하려면 워크플로우가 실행됩니다.jobs:
build:
runs-on: ubuntu-latest
나는 Ubuntu에서 나의 모든 구축을 실행하지만, 너는 다른 운영체제를 사용할 수 있고, 심지어는 위탁 관리 프로그램을 사용할 수 있다.steps:
- name: Checkout
uses: actions/checkout@v2
이 단계는 이 작업 흐름의 다른 단계에서 사용할 수 있도록 코드를 서명합니다 - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
이 단계는 Buildx를 설정하여 필요에 따라 다른 운영체제에 다른 이미지를 구축할 수 있도록 합니다. (애플 실리콘 칩에서 실행되는 용기를 구축하려면 특히 유용합니다.) - name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
말 그대로 Docker Hub에 로그인하여 생성된 컨테이너 이미지를 전송합니다.그것은 앞에 만들어진 두 가지 비밀을 이용했다. - name: Build and push to Docker Hub
uses: docker/build-push-action@v2
with:
push: true
tags: retgits/myapp:1.0.0
이 단계에서 컨테이너를 구성하여 Docker Hub에 밀어넣습니다workflow_dispatch
.이것은 용기 이미지를 유일하게 표시하기 위해 매개 변수화, GitHub commit SHA, 또는 다른 것을 사용하고 싶은 곳입니다. - name: Deploy to Akka Serverless
uses: retgits/akkasls-action@v1
with:
cmd: "services deploy myapp retgits/myapp:1.0.0"
env:
token: ${{ secrets.TOKEN }}
project: ${{ secrets.PROJECT }}
이 프로세스의 마지막 단계는 컨테이너 이미지를 Akka Serverless에 배치하는 것입니다.이 단계는 앞에서 만든 다른 두 가지 비밀을 이용하고 이전 단계와 같은 표시를 사용했다.다음은요?
보시다시피 CI/CD를 사용하여 서비스를 Akka Serverless에 배치하는 것은 매우 간단합니다. 일단 설정하면 많은 번거로움을 줄일 수 있습니다.네가 다음에 무엇을 보고 싶은지, 아니면 우리가 다음에 무엇을 건설하기를 원하는지 나에게 알려줘!
표지 사진 작성자Gerd Altmann 출처Pixabay
Reference
이 문제에 관하여(Github Actions 및 Akka Serverless와 지속적인 통합 및 제공 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/retgits/how-to-set-up-continuous-integration-and-delivery-with-github-actions-and-akka-serverless-2mjg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)