DOIFORDevOps使用Gitea Action配置CD/CI的一个实例
DOIFORDevOps使用Gitea Action配置CD/CI的一个实例

使用Gitea Action配置CD/CI的一个实例

DevOps技术

今天开始尝试着使用gitea的action来完成自动化构建任务,详细可以查看官方文档

不过官方文档写的也不是很详细,本文主要记录一个使用gitea action实现springboot native 镜像构建。

第一步,部署一个Runner

我这边部署的比较简单,各种缓存之类的都没有配置,就启动了一个默认的Runner:

docker run -e GITEA_INSTANCE_URL=https://giteaHost -e GITEA_RUNNER_REGISTRATION_TOKEN=xxxxxxxx-v /var/run/docker.sock:/var/run/docker.sock --name my_runner gitea/act_runner:nightly

gitea的runner分为实例级、组织级、仓库级,具体配置查看官方文档,上述语句是配置一个实例级runner的语句,启动后可以在设置 -> action -> runner中看到以下内容:

image

第二部,使用yml定义job流水线,大致内容如下:

name: build spring boot native image
on:
  push:
    branches: [master]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Check out
        uses: actions/checkout@v4
      - name: Set java-temurin-22
        uses: actions/setup-java@v4
        with:
            java-version: '22'
            distribution: 'temurin'
      - name: Grant execute permission for gradlew
        run: chmod +x gradlew
      - name: Build with gradle
        run: ./gradlew bootBuildImage

通过我之前的文章中可以知道springboot打包native镜像只需要使用gradle执行“bootBuildImage"命令即可,该命令可以配置镜像构建、制品的各种信息。

因此,我需要在给先搭建好gradle能够正常执行的环境,本项目也很简单,只需要配置好符合的jdk版本即可,执行gradle命令的时候会自动读取项目中的gradle-wrapper.properties

上述文档定义过程也很简单,我直接想AI求助了,让他写一个配置文件出来,然后大致修改了以下就行了。ps: AI是真的可以加速程序员开发的效率。

如果要自行学习也可以查看Github Actions官方文档,gitea action和github action是兼容的。

将上述文件放到 .gitea/workflows文件夹下面,这一点很重要。做好后项目结构大致如下:

image

只需要push到gitea上,就会在第一步中启动的runner中执行流水线,执行结果如下:

image

OK, 项目的进度又向前进了一步!值得写一篇文章庆贺一下,另外gitea还支持使用drone来跑流水线,以后有机会写一篇小文章介绍一下。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注