【问题标题】:Github Action - AWS CodeDeploy Succeeded but in EC2 created the modified fileGithub 操作 - AWS CodeDeploy 成功但在 EC2 中创建了修改后的文件
【发布时间】:2021-07-15 07:11:47
【问题描述】:

我正在设置 Github Action、AWS EC2、CodeDeploy。所有配置似乎都运行良好。但除了一件事。我无法理解,我该如何解决。如果有人有这方面的经验,请帮助我。

我正在使用:

  • EC2 Rhel 8

  • Node 项目(VueJs 框架)

这是我的 cicd.yml 文件

on:
  push:
    branches:
    - paymentV2
    
name: Deploy VueJS to Amazon ECS
#on: [push]

jobs:
  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: ['12.x']
        appname: ['staging-aws-codedeploy']
        deploy-group: ['staging']
        repo: ['project/MyProject']

    steps:
      - uses: actions/checkout@v2

      # Configure AWS credentials
      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: ap-southeast-1

      # Deploy to AWS
      - name: Deploy to AWS
        run: |
          aws deploy create-deployment \
          --application-name ${{ matrix.appname }} \
          --deployment-config-name CodeDeployDefault.OneAtATime \
          --deployment-group-name ${{ matrix.deploy-group }} \
          --file-exists-behavior OVERWRITE \
          --description "GitHub Deployment for the ${{ matrix.appname }}-${{ github.sha }}" \
          --github-location repository=${{ matrix.repo }},commitId=${{ github.sha }}

这是我的 appspec.yml

version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/MyProject
hooks:
  ApplicationStart:
    - location: scripts/application_start.sh
      timeout: 300
      runas: root
  #scripts/application_start.sh
  #cd /var/www/MyProject
  #npm run build

这是来自 Github 操作和 CodeDeploy AWS 的日志

我尝试编辑 Vision.vue 文件并在 Github 上创建了拉取请求。一切运作良好。但我感到困惑的一件事是为什么存在修改后的文件。请参考下图

=> 我期望的是修改后的文件不应该存在。我认为 Github 应该自动运行 git pull 来获取所有新的源代码。 我进行了更多研究,发现 --file-exists-behavior with OVERWRITE 但它似乎没有按我的意愿工作。 https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html

==> 再一次,我对 Github action 和 CodeDeploy 的 CD 没有经验。请大家帮助我并建议我正确的事情。非常感谢。

【问题讨论】:

    标签: amazon-ec2 github-actions aws-code-deploy


    【解决方案1】:

    经过一段时间的学习,我明白 appspect 和 buildspec.yaml 只是构建和部署的方式,但是对于拉取代码,我使用了 webhook (aws codebuild, AWS Code Pipeline, Github webhook) 或 schedule (crontab )。而且我决定为我的项目使用 crontab,安排每小时提取新的源代码。希望这个分享可以帮助到任何人。提示

    【讨论】:

      猜你喜欢
      • 2022-06-22
      • 1970-01-01
      • 2016-04-29
      • 2017-01-14
      • 1970-01-01
      • 1970-01-01
      • 2017-12-17
      • 1970-01-01
      • 2020-04-04
      相关资源
      最近更新 更多