CrayfishXu

专注Android,填坑铺路

0%

Gitlab自动化打包

自动化解放双手真的很爽,点一下喝杯茶发现一切搞定啦。我使用的服务器系统是Centos 7,使用的打包工具Gitlab CI/CD

开始搞事

  • 准备一台Centos 7服务或者MAC电脑

  • 安装Gitlab runner

    mac环境:

    sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64

    Centos环境添加runner的源:

    curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash

    安装命令:

    yum install gitlab-ci-multi-runner

  • 向Gitlab-CI注册runner

    gitlab-ci-multi-runner register

    正确配置URL、token、description等,executor配置shell。来自于GitLab如图:

    gitlab_runner

    配置完就可以在Gitlab上看到runner

  • 最后部署脚本

    根据不同情况进行脚本修改

    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
    # 就是上文说的stages
    stages:
    - build_debug # 这里就是一个stage,可以定义多个stage,这个stage就是下面的build_debug

    # 构建之前会执行的脚本,这里导入本地的环境变量
    before_script:
    - export ANDROID_HOME=/usr/local/androidSdk
    - export PATH=$PATH:${ANDROID_HOME}/tools
    - export PATH=$PATH:${ANDROID_HOME}/platform-tools
    - chmod +x ./gradlew

    # 声明一个名叫build_debug的构建任务
    build_debug:
    stage: build_debug
    # 构建中,执行一些脚本
    script:
    # - ./gradlew --stacktrace assembleDevelopDebug
    - ./gradlew build
    # 指定监听哪一个分支或什么时候触发Pipeline
    only:
    # - tags #这里tags的作用是当修改gitlab项目tag的时候会触发
    # - test # 监听GitLab的这个分支
    - master
    # 指定由哪一个runner运行
    tags:
    - develop # 这个dev是上文注册Runner时的tag,和注册时候tag一样的话就会用对应的Runner来执行任务
    # 指定成功后应附加到任务的文件和目录的列表
    artifacts:
    paths:
    - app/build/outputs/

    # 构建完成之后执行的脚本
    #after_script:
    # - 这里如果是要配合monkey的话,一般在这个地方执行monkey的脚本

验证搞事成果

正常配置后会显示在gitlab的settings->CI/CD->runners settings中,

gitlab_runner_result1

每次提交后(可以根据only配置触发条件)都会触发打包,打包完成可直接下载。

gitlab_runner_result2