Skip to content

优化注册脚本 #432

优化注册脚本

优化注册脚本 #432

Workflow file for this run

name: Build
on:
push:
branches:
- v2
env:
# 设置 docker 镜像名
IMAGE_NAME: fasttunnel-v2
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 7.0.*
include-prerelease: true
- name: Build with dotnet
run: chmod +x ./publish.sh
publish:
name: publish-core
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup dotnet
uses: actions/setup-dotnet@v1
with:
dotnet-version: 7.0.*
include-prerelease: true
# Publish
- name: publish on version change
id: publish_nuget
uses: SpringHgui/publish-nuget@1.0.1
with:
# Filepath of the project to be packaged, relative to root of repository
PROJECT_FILE_PATH: FastTunnel.Core/FastTunnel.Core.csproj
# NuGet package id, used for version detection & defaults to project name
# PACKAGE_NAME: Core
# Filepath with version info, relative to root of repository & defaults to PROJECT_FILE_PATH
# VERSION_FILE_PATH: Directory.Build.props
# Regex pattern to extract version info in a capturing group
# VERSION_REGEX: ^\s*<Version>(.*)<\/Version>\s*$
# Useful with external providers like Nerdbank.GitVersioning, ignores VERSION_FILE_PATH & VERSION_REGEX
# VERSION_STATIC: 1.0.0
# Flag to toggle git tagging, enabled by default
# TAG_COMMIT: true
# Format of the git tag, [*] gets replaced with actual version
# TAG_FORMAT: v*
# API key to authenticate with NuGet server
NUGET_KEY: ${{secrets.NUGET_API_KEY}}
# NuGet server uri hosting the packages, defaults to https://api.nuget.org
# NUGET_SOURCE: https://api.nuget.org
# Flag to toggle pushing symbols along with nuget package to the server, disabled by default
# INCLUDE_SYMBOLS: false
api:
name: publish-api
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup dotnet
uses: actions/setup-dotnet@v1
with:
dotnet-version: 7.0.*
include-prerelease: true
# Publish
- name: publish on version change
id: publish_nuget
uses: SpringHgui/publish-nuget@1.0.1
with:
# Filepath of the project to be packaged, relative to root of repository
PROJECT_FILE_PATH: FastTunnel.Api/FastTunnel.Api.csproj
NUGET_KEY: ${{secrets.NUGET_API_KEY}}
docker:
name: publish-docker
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
# 构建镜像,指定镜像名
- name: Build image
run: docker build . --file Dockerfile --tag $IMAGE_NAME
# 登录到 dockerhub,使用 GitHub secrets 传入账号密码,密码被加密存储在 GitHub 服务器,添加方法见下图。
- name: Log into registry
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u springhgui --password-stdin
- name: Push image
run: |
IMAGE_ID=springhgui/$IMAGE_NAME
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
VERSION=$(date "+%Y.%m.%d")
echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION
# 设置镜像 id 和版本号
echo [tag] $IMAGE_NAME $IMAGE_ID:$VERSION
docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
# 进行 push
echo [push] $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION
# 再上传一份覆盖latest
echo [tag] $IMAGE_ID:$VERSION $IMAGE_ID:latest
docker tag $IMAGE_ID:$VERSION $IMAGE_ID:latest
echo [push] $IMAGE_ID:latest
docker push $IMAGE_ID:latest