Skip to content

test ci

test ci #4

Workflow file for this run

name: Build and Deploy
on:
push:
branches:
- main # 触发 CI 的分支
workflow_dispatch:
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18' # 根据需要设置 Node.js 版本
- name: Install dependencies
run: npm install
- name: Build application
run: npm run build
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build Docker image
run: docker build . -t ${{ secrets.DOCKER_HUB_USERNAME }}/base64-tool:latest
- name: Push Docker image
run: docker push ${{ secrets.DOCKER_HUB_USERNAME }}/base64-tool:latest
- name: Deploy to server
run: |
ssh -o StrictHostKeyChecking=no ${{ secrets.REMOTE_USER }}@${{ secrets.REMOTE_HOST }} << 'EOF'
docker pull ${{ secrets.DOCKER_HUB_USERNAME }}/base64-tool:latest
docker stop base64-tool || true
docker rm base64-tool || true
docker run -d -p 3000:3000 --name base64-tool ${{ secrets.DOCKER_HUB_USERNAME }}/base64-tool:latest
EOF