GitHub을 사용한 Appwrite 기능 배포 자동화

10366 단어
Appwrite v0.7에서, 우리는 Cloud Functions 소스 오픈 백엔드 즉 서비스를 도입할 것입니다. 백엔드 코드를 맞춤형으로 만들어서 Appwrite 서버를 맞춤형으로 만들 수 있습니다.Appwrite dashboard 또는 새 Appwrite CLI 배포 코드를 사용하고 API, 특정 시스템 이벤트, 사전 정의 계획 또는 대시보드를 통해 코드를 실행할 수 있습니다.
개발자가 게으르기 때문에, 이것은 아주 좋은 방법이다. GitHub을 사용하여 자동화 Appwrite 함수의 배치를 조작할 것이다.
Appwrite가 가능한 한 간단하게 CI에 통합되도록 하기 위해서, 우리는 GitHub Action in the Marketplace를 제공하여 통합Appwrite CLI을 제공합니다.이렇게 하면 Appwrite 서버의 모든 기능에 액세스하고 사용할 수 있습니다.

1단계 - GitHub 작업 생성


이 예에 대해 나는 하나를 사용했다.NET 항목이지만 Appwrite 함수가 환경을 제공하는 모든 언어에 적용됩니다.Node.js 또는 Python에 대한 도움이 필요하면 공식 문서를 사용하거나 GitHub 작업에 익숙해지면 2단계로 바로 이동하십시오.
빠른 시작을 위해 저장소의 deploy.yml 디렉토리에 .github/workflows를 만듭니다.
# deploy.yml

name: Deploy .NET function

on:
  push:
    branches: [ $default-branch ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Setup .NET Core SDK 5.0
      uses: actions/[email protected]
      with:
        dotnet-version: '5.0'
    - name: Install dependencies
      run: dotnet restore
    - name: Build
      run: dotnet build --configuration Release --no-restore
    - name: Test
      run: dotnet test --no-restore --verbosity normal
이 워크플로 파일은 Ubuntu를 설정하는 데 사용됩니다.NET 5.0은 프로젝트의 모든 종속성을 설치하고 프로젝트를 구축하고 정의된 테스트를 실행합니다.
우선, 우리는 우리의 업무 흐름에 이름을 지어 그것을 식별한다.나의 예에서 나는 Deploy .NET function라고 부른다.
name: Deploy .NET function
이 섹션에서는 밀어넣기$default-branch 때마다 이 작업을 실행하도록 정의합니다.우리의 경우, 이것은 주요한 지점이 될 것이다.
on:
  push:
    branches: [ $default-branch ]
사전 설치된 버전의 를 사용합니다.NET Core SDK는 GitHub에서 호스팅하는 실행 프로그램에서 setup-dotnet 작업을 사용하고 있습니다.이 작업은 의 특정 버전을 찾습니다.NET는 모든 실행 프로그램의 도구에서 캐시합니다.이러한 변화는 작업의 남은 시간까지 지속될 것이다.
권장 작업setup-dotnetNET와 GitHub 작업은 서로 다른 실행자와 서로 다른 버전의 응용 프로그램 간의 행동이 일치하도록 확보하기 때문이다.그물
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Setup .NET Core SDK 5.0
      uses: actions/[email protected]
      with:
        dotnet-version: '5.0'
나머지 절차는 자명해야 합니다. 우리는 지금 우리의 함수를 Appwrite 서버에 배치할 것입니다.

2단계 - Appwrite CLI 설정


This action 이 작업의 다음 모든 단계에 대해 Appwrite CLI가 설정됩니다.우리는 Setup .NET Core SDK 5.0 이후에 그것을 추가한 후에 우리의 프로젝트를 구축하고 테스트할 것이다.
- uses: appwrite/setup-for-actions@v1
  with:
    endpoint: 'https://[HOSTNAME_OR_IP]/v1'
    project: '${{ secrets.APPWRITE_PROJECT }}'
    key: '${{ secrets.APPWRITE_API_KEY }}'
[HOSTNAME_OR_IP] Appwrite 서버를 가리키는 주소로 교체해야 합니다.projectkey에 대해 우리는 GitHub Secrets를 사용하여 API 키와 같은 민감한 정보의 유출을 방지할 것이다.비밀을 어떻게 추가하는지 모르면 click here 공식 문서를 읽으세요.
GitHub 저장소에 다음 비밀을 생성합니다.
  • APPWRITE_PROJECT
  • 값은 프로젝트 ID
  • 여야 합니다.
  • APPWRITE_API_KEY
  • 값은 API 키여야 합니다.함수를 배치하려면 이 키가 functions.write 작용역의 권한을 가져야 합니다.
  • 위대하다이제 Appwrite CLI를 사용할 수 있습니다.appwrite 명령을 사용하여 CLI에 액세스할 수 있습니다.test 이후에는 CLI를 사용하여 기능을 배포하는 다른 단계를 추가합니다.
    - name: Deploy
      run: |
        appwrite functions createTag \
          --functionId='[FUNCTION_ID]' \
          --command="dotnet appwrite-dotnet-function-example.dll" \
          --code="bin/Release/net5.0/" 
    
    [FUNCTION_ID] Appwrite 대시보드에서 찾을 수 있는 함수 ID로 대체해야 합니다.--command 매개 변수는 함수를 실행할 때마다 실행되는 명령입니다.노드에 사용됩니다.js는 node index.js일 거예요.--code 매개 변수는 함수의 저장 위치를 가리킨다.함수가 저장소의 루트 디렉터리에 저장되면 --code="." 전체 저장소를 포장하고 배치할 수 있습니다.
    찾을 수 있습니다complete workflow file here.

    STEP 3-Push 및 배포 기능


    이 워크플로우 파일을 GitHub 저장소로 밀어 넣으면 GitHub에서 자동으로 실행되므로 GitHub 저장소의 작업 섹션에서 로그를 찾을 수 있습니다.

    이 행동은 나의 기분을 고조시켰다.NET 프로젝트를 내 Appwrite 서버에 배치합니다.함수 아래의 Appwrite 대시보드에서 태그를 찾을 수 있습니다.

    결론


    GitHub은 최근 개인 저장소에 무료 조작과 매달 2000분의 구축 시간을 제공했다.이를 통해 Appwrite Functions 자동화our GitHub action 배포를 사용할 수 있습니다.
    도움이 필요하거나 CI에서 Appwrite를 설정하는 데 어려움이 있으면 join our Discord로 전화하십시오.

    도구책

  • Appwrite GitHub Action
  • Appwrite Functions
  • Appwrite v0.7 Announcement
  • Appwrite Discord
  • Appwrite Documentation
  • Demo Repository
  • 좋은 웹페이지 즐겨찾기