Skip to content

release

release #46

Workflow file for this run

name: release
permissions: write-all
on:
push:
tags:
- 'v*'
jobs:
build:
strategy:
matrix:
platform: [ ubuntu-latest]
go-version: [ '1.22' ]
runs-on: ${{ matrix.platform }}
steps:
- name: Test Env
run: |
echo "Tag name from GITHUB_REF_NAME: $GITHUB_REF_NAME"
echo "Tag name from github.ref_name: ${{ github.ref_name }}"
echo "Tag name from github.ref: ${{ github.ref }}"
echo "Runs name: ${{runner.os}}"
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- name: Install dependencies
run: |
go get .
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to ALiYun
uses: docker/login-action@v3
with:
registry: registry.cn-hangzhou.aliyuncs.com
username: ${{ secrets.ALIYUN_USERNAME }}
password: ${{ secrets.ALIYUN_TOKEN }}
- name: Build
run: |
make clean-source
make build PROJECT_NAME=dpanel-amd64 CGO_ENABLED=1
# arm64
curl -Lo arm64.tar.xz https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-aarch64-none-linux-gnu.tar.xz
tar -xf arm64.tar.xz
make build PROJECT_NAME=dpanel-arm64 CGO_ENABLED=1 GOARM=7 GOARCH=arm64 GOOS=linux \
CC=${PWD}/arm-gnu-toolchain-13.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc \
CXX=${PWD}/arm-gnu-toolchain-13.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++
# armv7
curl -Lo arm.tar.xz https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz
tar -xf arm.tar.xz
make build PROJECT_NAME=dpanel-arm CGO_ENABLED=1 GOARM=7 GOARCH=arm GOOS=linux \
CC=${PWD}/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc \
CXX=${PWD}/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-g++
# amd64-musl
curl -Lo amd64-musl.tgz https://musl.cc/x86_64-linux-musl-cross.tgz
tar xzf amd64-musl.tgz
make build PROJECT_NAME=dpanel-musl-amd64 CGO_ENABLED=1 \
CC=${PWD}/x86_64-linux-musl-cross/bin/x86_64-linux-musl-gcc \
CXX=${PWD}/x86_64-linux-musl-cross/bin/x86_64-linux-musl-g++
# arm64-musl
curl -Lo arm64-musl.tgz https://musl.cc/aarch64-linux-musl-cross.tgz
tar xzf arm64-musl.tgz
make build PROJECT_NAME=dpanel-musl-arm64 CGO_ENABLED=1 GOARM=7 GOARCH=arm64 GOOS=linux \
CC=${PWD}/aarch64-linux-musl-cross/bin/aarch64-linux-musl-gcc \
CXX=${PWD}/aarch64-linux-musl-cross/bin/aarch64-linux-musl-g++
# arm-musl
curl -Lo arm-musl.tgz https://musl.cc/arm-linux-musleabihf-cross.tgz
tar zxf arm-musl.tgz
make build PROJECT_NAME=dpanel-musl-arm CGO_ENABLED=1 GOARM=7 GOARCH=arm GOOS=linux \
CC=${PWD}/arm-linux-musleabihf-cross/bin/arm-linux-musleabihf-gcc \
CXX=${PWD}/arm-linux-musleabihf-cross/bin/arm-linux-musleabihf-g++
- name: Docker BuildX
run: |
docker buildx build \
-t dpanel/dpanel:lite \
-t dpanel/dpanel:${GITHUB_REF_NAME#v}-lite \
-t registry.cn-hangzhou.aliyuncs.com/dpanel/dpanel:lite \
-t registry.cn-hangzhou.aliyuncs.com/dpanel/dpanel:${GITHUB_REF_NAME#v}-lite \
--platform linux/arm64,linux/amd64,linux/arm/v7 \
--build-arg APP_VERSION=${GITHUB_REF_NAME#v} \
-f Dockerfile-lite \
. --push
docker buildx build \
-t dpanel/dpanel:latest \
-t dpanel/dpanel:${GITHUB_REF_NAME#v} \
-t registry.cn-hangzhou.aliyuncs.com/dpanel/dpanel:latest \
-t registry.cn-hangzhou.aliyuncs.com/dpanel/dpanel:${GITHUB_REF_NAME#v}-latest \
--platform linux/arm64,linux/amd64,linux/arm/v7 \
--build-arg APP_VERSION=${GITHUB_REF_NAME#v} \
. --push
- name: upload artifact
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
files: runtime/*
prerelease: false
macos-build:
strategy:
matrix:
platform: [ 'macos-12', 'macos-latest' ]
go-version: [ '1.22' ]
runs-on: ${{ matrix.platform }}
steps:
- name: Test Env
run: |
echo "Tag name from GITHUB_REF_NAME: $GITHUB_REF_NAME"
echo "Tag name from github.ref_name: ${{ github.ref_name }}"
echo "Tag name from github.ref: ${{ github.ref }}"
echo "Runs name: ${{runner.os}}"
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- name: Install dependencies
run: |
go get .
- name: Build
run: |
make clean-source
make build PROJECT_NAME=dpanel-darwin-${{runner.arch}} CGO_ENABLED=1
- name: upload artifact
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
files: runtime/*
prerelease: false
windows-build:
strategy:
matrix:
platform: [ 'windows-latest' ]
go-version: [ '1.22' ]
runs-on: ${{ matrix.platform }}
steps:
- name: Test Env
run: |
echo "Tag name from GITHUB_REF_NAME: $GITHUB_REF_NAME"
echo "Tag name from github.ref_name: ${{ github.ref_name }}"
echo "Tag name from github.ref: ${{ github.ref }}"
echo "Runs name: ${{runner.os}}"
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- name: Install dependencies
run: |
go get .
- name: Build
run: |
set CGO_ENABLED=1
go build -o runtime/dpanel.exe
- name: upload artifact
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
files: runtime/*
prerelease: false