amazon-web-services - 使用 Github Actions 将代码直接部署到 AWS EC2 实例

标签 amazon-web-services github amazon-ec2 github-actions

正如标题所说,我正在尝试部署我的 Laravel-Angular 直接从 申请Github AWS EC2 使用 的实例Github 操作 .

在我的申请中有 3 角 8+ 在部署之前需要构建的项目。哪里不需要构建laravel。

可用的解决方案建议使用 AWS Elastic Beanstalk 部署代码。但是,如果要这样做,如何将 Elastic Beanstalk 附加到现有实例还不够清楚。

有没有办法将代码部署到 AWS EC2 不使用 Elastic Beanstalk ?

这是我的 Github 操作 构建.yml:

name: Build Develop Branch

on:
  push:
    branches: [ develop ]
  pull_request:
    branches: [ develop ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [14.x]

    steps:
    - name: Code Checkout
      uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}
    - name: App 1 npm install
      run: npm install
      working-directory: angular-app-1
    - name: App 1 Build
      run: npm run build:staging
      working-directory: angular-app-1
    - name: App 2 npm install
      run: npm install
      working-directory: angular-app-2
    - name: App 2 Build
      run: node node_modules/@angular/cli/bin/ng build --configuration=staging
      working-directory: angular-app-2
    - name: App 3 npm install
      run: npm install
      working-directory: angular-app-3
    - name: App 3 Build
      run: node node_modules/@angular/cli/bin/ng build --configuration=staging
      working-directory: angular-app-3

最佳答案

Is there a way to deploy code to AWS EC2 without using Elastic Beanstalk?


我找到了一种使用 GitHub Actions 部署到 EC2 实例(或任何通过 rsync 接受 ssh 命令的服务器)的简单方法。 .
我在 repo 的 .github/workflows 文件夹中有一个简单的文件,其中 GitHub 操作 每当推送到我的 GitHub 存储库时,都会运行以部署到我的 EC2 实例。
没有麻烦,没有大惊小怪,没有特殊的咒语或拜占庭式的 AWS 配置细节。
文件 .github/workflows/pushtoec2.yml:
name: Push-to-EC2

on: push

jobs:
  deploy:
    name: Push to EC2 Instance
    runs-on: ubuntu-latest

    steps:
      - name: Checkout the code
        uses: actions/checkout@v1

      - name: Deploy to my EC2 instance
        uses: easingthemes/ssh-deploy@v2.1.5
        env:
          SSH_PRIVATE_KEY: ${{ secrets.EC2_SSH_KEY }}
          SOURCE: "./"
          REMOTE_HOST: "ec2-34-213-48-149.us-west-2.compute.amazonaws.com"
          REMOTE_USER: "ec2-user"
          TARGET: "/home/ec2-user/SampleExpressApp"

详情ssh deploy上面使用的 GitHub 操作。

关于amazon-web-services - 使用 Github Actions 将代码直接部署到 AWS EC2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62087265/

相关文章:

amazon-web-services - 无法通过 aws Pinpoint 直接发送电子邮件

Git 不改变工作目录

java - 在 AWS EC2 实例上从 JAVA 运行 Bash 命令

amazon-web-services - AWS 公共(public) DNS 删除

javascript - 如何从 aws-sdk apis 文件夹中获取/读取 JSON 文件

mysql - 使用 eclipse 连接到 AWS RDS

amazon-web-services - 我应该为警报 HTTPCode_Target_5XX_Count 或 HTTPCode_ELB_5XX_Count 使用哪些指标?

python - 有什么方法可以使用 boto3 将文件直接写入 S3?

git - 通过 GitHub 提交 pull 请求的正确方法(为开源做出贡献时)

使用公共(public)私钥的 Git 克隆