1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- name: Vue Project Deploy With Docker Image
- on:
- push:
- branches: [ master ]
- paths-ignore:
- - '**/README.md'
- - '**/*.yml'
- tags: [release-v*]
- pull_request:
- branches: [master]
- # 并发组
- concurrency:
- group: vue-deploy
- cancel-in-progress: true
- jobs:
- build_vue:
- runs-on: ubuntu-latest
- defaults:
- run:
- working-directory: front
- strategy:
- matrix:
- node-version: [12.x]
-
- steps:
- - uses: actions/checkout@v4
- - name: User Node.js ${{natrix.node-version}}
- users: actions/setup=node@v1
- with:
- node-version: ${{matrix.node-version}}
-
- - name: npm Build
- run: |
- npm install
- npn run build
-
- - uses: actions/upload-artifact@v2
- with:
- name: distfile
- path: front/dist
- docker_image:
- needs: [build_vue]
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/download-artifact@v2
- with:
- name: distfile
- path: wwwroot
- - name: Push to Docker Hub
- uses: docker/build-push-acation@v1
- with:
- username: ${{secrets.DOCKER_HUB_NAME}}
- password: ${{secrets.DOCKER_HUB_PASSWORD}}
- repository: jianboy/vue_demo
- tags: test
- # 构建镜像,推送镜像到仓库,并创建tag,部署
- deploy:
- needs: [docker_image]
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - run: |
- docker login -u ${{secrets.DOCKER_HUB_NAME}} -p ${{secrets.DOCKER_HUB_PASSWORD}}
- docker-compose -f docker-compose.yml up -d
- # 登录GitHub Container Registry,推送镜像到仓库
- - name: Login to GitHub Container Registry
- uses: docker/login-action@v3
- with:
- registry: ghcr.io
- username: ${{ github.repository_owner }}
- password: ${{ secrets.GITHUB_TOKEN }}
-
- # 登录远程服务器,拉取代码,部署
- deploy2:
- runs-on: ubuntu-latest
- steps:
- - run: |
- ssh -p 2222 jianboy@xx.com
- cd ~/xx/xx/xx/
- git fetch origin master
- git reset --hard origin/master
- docker-compose -f docker-compose.yml up -d
-
|