之前用Github做了CICD,流程和代码放在一块,方便管理,可以构建、打包、推送镜像到Dockerhub、连接服务器做部署,这两天在阿里云仓库做了镜像,然后用Github Actions推送到阿里云仓库
用Github Actions做CICI流程分享
1. 前言
之前用Github做了CICD,流程和代码放在一块,方便管理,可以构建、打包、推送镜像到Dockerhub、连接服务器做部署,这两天在阿里云仓库做了镜像,然后用Github Actions推送到阿里云仓库
阿里云仓库: https://cr.console.aliyun.com/cn-hangzhou/instance/repositories
2. 位置

3. Java 流程
其中的$可以在github项目->【Settings】->【Security】->【Secrets and variables】->【Actions】处设置,就是个密钥
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| name: Java CI with Gradle
on: push: branches: [ main ] pull_request: branches: [ main ]
jobs: build:
runs-on: ubuntu-latest
steps: - uses: actions/checkout@v2
- name: Set up JDK 1.8 uses: actions/setup-java@v1 with: java-version: 1.8
- name: Grant execute permission for gradlew run: chmod +x gradlew
- name: Build with gradle run: ./gradlew build
- name: Build Docker Image run: docker build . --file Dockerfile --tag ${{ secrets.IMAGE_NAME }}:$(date +%s)
- name: Publish to Docker Repository uses: elgohr/Publish-Docker-Github-Action@master with: name: ${{ secrets.IMAGE_NAME }}:latest username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }}
- name: Publish to Aliyun Docker Repository run: | docker login --username=${{ secrets.ALIYUN_DOCKER_USERNAME }} --password=${{ secrets.ALIYUN_DOCKER_PASSWORD }} registry.cn-hangzhou.aliyuncs.com docker build -t ${{ secrets.IMAGE_NAME }} . docker tag ${{ secrets.IMAGE_NAME }} ${{ secrets.ALIYUN_IMAGE_URL }}:latest docker push ${{ secrets.ALIYUN_IMAGE_URL }}:latest
pull-docker: needs: [build] name: Pull Docker runs-on: ubuntu-latest steps: - name: Deploy uses: appleboy/ssh-action@master with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USER }} password: ${{ secrets.SERVER_PWD }} port: ${{ secrets.SERVER_PORT }} script: | docker pull ${{ secrets.ALIYUN_IMAGE_URL }} docker-compose up -d --build
|
4. Javascript流程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| name: Node.js CI
on: push: branches: [ master ] pull_request: branches: [ master ]
jobs: build:
runs-on: ubuntu-latest
strategy: matrix: node-version: [12.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' - run: npm ci - run: npm run build --if-present - run: npm test - run: ls
- name: Build Docker Image run: docker build . --file Dockerfile --tag ${{ secrets.IMAGE_NAME }}:$(date +%s)
- name: Publish to Docker Repository uses: elgohr/Publish-Docker-Github-Action@master with: name: ${{ secrets.IMAGE_NAME }}:latest username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }}
- name: Publish to Aliyun Docker Repository run: | docker login --username=${{ secrets.ALIYUN_DOCKER_USERNAME }} --password=${{ secrets.ALIYUN_DOCKER_PASSWORD }} registry.cn-hangzhou.aliyuncs.com docker build -t ${{ secrets.IMAGE_NAME }} . docker tag ${{ secrets.IMAGE_NAME }} ${{ secrets.ALIYUN_IMAGE_URL }}:latest docker push ${{ secrets.ALIYUN_IMAGE_URL }}:latest
pull-docker: needs: [build] name: Pull Docker runs-on: ubuntu-latest steps: - name: Deploy uses: appleboy/ssh-action@master with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USER }} password: ${{ secrets.SERVER_PWD }} port: ${{ secrets.SERVER_PORT }} script: | docker pull ${{ secrets.ALIYUN_IMAGE_URL }} docker-compose up -d --build
|
此为博主副博客,留言请去主博客,转载请注明出处:https://www.baby7blog.com/myBlog/130.html