在Ubuntu上实现JavaScript项目的自动化部署,通常涉及以下几个步骤:
下面是一个基本的示例,展示如何使用GitHub Actions来实现自动化部署。
首先,确保你的项目已经托管在GitHub上。
在你的项目根目录下创建一个.github/workflows目录,并在其中创建一个YAML文件,例如deploy.yml。
name: Deploy to Ubuntu
on:
push:
branches:
- main # 或者你希望部署的分支
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14' # 根据你的项目需求选择Node.js版本
- name: Install dependencies
run: npm install
- name: Build project
run: npm run build # 根据你的项目配置运行构建命令
- name: Deploy to server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SERVER_SSH_KEY }}
source: 'build/**' # 构建后的文件目录
target: '/path/to/deploy' # 服务器上的目标目录
- name: Run deployment script on server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SERVER_SSH_KEY }}
script: |
cd /path/to/deploy
sudo systemctl restart your-service # 根据你的项目配置重启服务
确保你的Ubuntu服务器已经配置好,并且可以通过SSH访问。你需要在GitHub仓库的Secrets中添加以下内容:
SERVER_HOST: 服务器的IP地址或域名。SERVER_USERNAME: 用于SSH登录的用户名。SERVER_SSH_KEY: 用于SSH登录的私钥。在上面的GitHub Actions工作流中,我们使用了appleboy/scp-action和appleboy/ssh-action来传输文件和执行远程命令。你可以根据需要调整这些步骤。
每次你向main分支推送代码时,GitHub Actions都会自动触发部署流程。你可以在GitHub仓库的Actions标签页中查看部署日志。
通过这种方式,你可以实现JavaScript项目的自动化部署。根据你的具体需求,你可能需要调整构建和部署步骤。