如何解决使用 Github Runner自托管部署 Node 应用程序的最佳实践是什么
我使用 GitHub 运行程序(自托管)来部署 Node.js 应用程序。在构建运行器之前,它会删除服务器上的所有文件夹、文件并创建一个新的构建文件夹。所以,这意味着服务器在跑步者构建时停止。我不想中断我正在运行的服务器。
我的问题是,节点部署的最佳实践是什么?
这里是 yml 文件:
name: Node.js CI
on:
push:
branches: [staging]
pull_request:
branches: [staging]
jobs:
build:
runs-on: self-hosted
defaults:
run:
working-directory: ./server
strategy:
matrix:
node-version: [14.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
- name: Creating env file
run: |
touch .env
echo Nginx_URL=${{ secrets.Nginx_URL_STAGING }} >> .env
echo PUBLIC_URL=${{ secrets.PUBLIC_URL_STAGING }} >> .env
echo HOST=${{ secrets.HOST }} >> .env
echo ADMIN_JWT_SECRET=${{ secrets.ADMIN_JWT_SECRET_STAGING }} >> .env
echo DATABASE_PASSWORD=${{ secrets.DATABASE_PASSWORD_STAGING }} >> .env
echo DATABASE_USERNAME=${{ secrets.DATABASE_USERNAME_STAGING }} >> .env
echo DATABASE_NAME=${{ secrets.DATABASE_NAME_STAGING }} >> .env
echo DATABASE_PORT=${{ secrets.DATABASE_PORT_STAGING }} >> .env
echo DATABASE_HOST=${{ secrets.DATABASE_HOST_STAGING }} >> .env
echo DATABASE_SSL=${{ secrets.DATABASE_SSL_STAGING }} >> .env
echo NODE_ENV=${{ secrets.NODE_ENV_STAGING }} >> .env
cat .env
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: yarn
- name: Building
run: yarn build
- name: Restart server
run: pm2 restart aj-staging
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。