在 aws ec2 机器上使用 CI CD 的 Gitihub 操作?

sum*_*tty 4 github amazon-ec2 amazon-web-services github-actions

我是新的 github actions 工作流程,想知道是否有可能在每次推送后将我的 ec2 机器直接设置为 CI 和 CD。

我已经看到 ECS 是可行的,但我想要一个直接的解决方案,因为我们正在我们的开发环境中尝试这一点,我们不希望超出我们的预算。

是否可能,如果可以,我该如何实现?

小智 5

如果您在 GitHub Actions 中构建代码,并且只想将包复制到现有 EC2 上,则可以使用 SCP 文件操作插件

https://github.com/marketplace/actions/scp-files

- name: copy file via ssh key
  uses: appleboy/scp-action@master
  with:
    host: ${{ secrets.HOST }}
    username: ${{ secrets.USERNAME }}
    port: ${{ secrets.PORT }}
    key: ${{ secrets.KEY }}
    source: "tests/a.txt,tests/b.txt"
    target: "test"
Run Code Online (Sandbox Code Playgroud)

如果您有任何其他与 EC2(或任何其他 AWS 服务)交互的 AWS 资源并且想要使用 AWS CLI,则可以使用 AWS Credentials Action

https://github.com/aws-actions/configure-aws-credentials

- name: Configure AWS credentials from Test account
  uses: aws-actions/configure-aws-credentials@v1
  with:
     aws-access-key-id: ${{ secrets.TEST_AWS_ACCESS_KEY_ID }}
     aws-secret-access-key: ${{ secrets.TEST_AWS_SECRET_ACCESS_KEY }}
     aws-region: us-east-1

 - name: Copy files to the test website with the AWS CLI
   run: |
     aws s3 sync . s3://my-s3-test-website-bucket
Run Code Online (Sandbox Code Playgroud)