name: CI/CD Pipeline on: push: branches: - master # 监视的分支 jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Build to Server uses: appleboy/ssh-action@v0.1.5 with: host: ${{ secrets.SSH_BUILD_HOST }} username: ${{ secrets.SSH_USERNAME }} password: ${{ secrets.SSH_PASSWORD }} script_stop: true script: | set -e mkdir -p /data/projects cd /data/projects if [ ! -d SimpleAdmin.Api/.git ]; then git clone git@github.com:xiaoliutral/SimpleAdmin.Api.git fi cd SimpleAdmin.Api git fetch origin master git checkout master git reset --hard origin/master docker build -t admin_api:latest -f src/SimpleAdmin.Api/Dockerfile . docker tag admin_api:latest registry.nanafa.com/admin_api:latest docker push registry.nanafa.com/admin_api:latest - name: Deploy to Server uses: appleboy/ssh-action@v0.1.5 with: host: ${{ secrets.SSH_MANAGER_HOST }} username: ${{ secrets.SSH_USERNAME }} password: ${{ secrets.SSH_PASSWORD }} script_stop: true script: | set -e cd /data docker pull registry.nanafa.com/admin_api:latest docker stack deploy -c api.yml api # yml没变化不会更新 docker service update --force --image registry.nanafa.com/admin_api:latest api_admin # 一定要和service name一致