Browse Source

ci(release&build): 添加 github workflows, 自动构建 release

- 添加 utils/build.sh 脚本,构建后放到 release 目录中
- 当 push tags时,自动创建 Release Draft
- 自动生成 Release Change Log
- 自动构建包,上传到 Release Assets
pull/4257/head
ibuler 4 years ago committed by 老广
parent
commit
3077d11483
  1. 44
      .github/release-config.yml
  2. 38
      .github/workflows/release-drafter.yml
  3. 2
      .gitignore
  4. 11
      build.sh
  5. 22
      utils/build.sh
  6. 12
      utils/build_docker.sh

44
.github/release-config.yml

@ -0,0 +1,44 @@
name-template: 'Release v$RESOLVED_VERSION'
tag-template: 'v$RESOLVED_VERSION'
categories:
- title: '🌱 新功能 Features'
labels:
- 'feature'
- 'enhancement'
- 'feat'
- '新功能'
- title: '🚀 性能优化 Optimization'
labels:
- 'perf'
- 'opt'
- 'refactor'
- 'Optimization'
- '优化'
- title: '🐛 Bug修复 Bug Fixes'
labels:
- 'fix'
- 'bugfix'
- 'bug'
- title: '🧰 其它 Maintenance'
labels:
- 'chore'
- 'docs'
exclude-labels:
- 'no'
- '无需处理'
- 'wontfix'
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
version-resolver:
major:
labels:
- 'major'
minor:
labels:
- 'minor'
patch:
labels:
- 'patch'
default: patch
template: |
## 版本变化 What’s Changed
$CHANGES

38
.github/workflows/release-drafter.yml

@ -0,0 +1,38 @@
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
name: Create Release And Upload assets
jobs:
create-realese:
name: Create Release
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Create Release
id: create_release
uses: release-drafter/release-drafter@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
config-name: release-config.yml
build-and-release:
needs: create-realese
name: Build and Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build it and upload
uses: ibuler/action-build-upload@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
upload_url: ${{ needs.create-realese.outputs.upload_url }}

2
.gitignore vendored

@ -36,3 +36,5 @@ xpack
logs/* logs/*
### Vagrant ### ### Vagrant ###
.vagrant/ .vagrant/
release/*
releashe

11
build.sh

@ -1,11 +0,0 @@
#!/bin/bash
#
version=$1
if [ -z "$version" ];then
echo "Usage: sh build version"
exit
fi
docker build -t jumpserver/jumpserver:$version .

22
utils/build.sh

@ -0,0 +1,22 @@
#!/bin/bash
#
# 该build基于registry.fit2cloud.com/public/python:3
utils_dir=$(pwd)
project_dir=$(dirname "$utils_dir")
release_dir=${project_dir}/release
# 编译翻译文件
cd "${project_dir}/apps" && python manage.py compilemessages
# 打包
cd "${project_dir}" || exit 3
rm -rf "${release_dir:?}/*"
to_dir="${release_dir}/jumpserver"
mkdir -p "${to_dir}"
git archive --format tar HEAD | tar x -C "${to_dir}"
# 修改版本号文件
if [[ -n ${VERSION} ]]; then
sed -i "" "s@VERSION = .*@VERSION = \"${VERSION}\"@g" "${release_dir}/jumpserver/apps/jumpserver/const.py"
fi

12
utils/build_docker.sh

@ -0,0 +1,12 @@
#!/bin/bash
#
utils_dir=$(dirname "$0")
project_dir=$(dirname "${utils_dir}")
version=$1
if [ -z "$version" ]; then
echo "Usage: sh build version"
exit
fi
cd "${project_dir}" && docker build -t "jumpserver/jumpserver:${version}" .
Loading…
Cancel
Save