mirror of
https://github.com/daeuniverse/dae.git
synced 2024-12-23 01:24:45 +07:00
chore: add github actions (#1)
This commit is contained in:
parent
f8d40e03c1
commit
83a303d786
125
.github/workflows/release.yml
vendored
Normal file
125
.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,125 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [ prereleased ]
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- v*
|
||||
paths:
|
||||
- "**/*.go"
|
||||
- "go.mod"
|
||||
- "go.sum"
|
||||
- ".github/workflows/*.yml"
|
||||
pull_request:
|
||||
types: [ opened, synchronize, reopened ]
|
||||
paths:
|
||||
- "**/*.go"
|
||||
- "go.mod"
|
||||
- "go.sum"
|
||||
- ".github/workflows/*.yml"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
goos: [ linux ]
|
||||
goarch: [ amd64, arm64, 386, riscv64, mips64, mips64le, mipsle, mips ]
|
||||
include:
|
||||
# BEGIN Linux ARM 5 6 7
|
||||
- goos: linux
|
||||
goarch: arm
|
||||
goarm: 7
|
||||
- goos: linux
|
||||
goarch: arm
|
||||
goarm: 6
|
||||
- goos: linux
|
||||
goarch: arm
|
||||
goarm: 5
|
||||
# END Linux ARM 5 6 7
|
||||
fail-fast: false
|
||||
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
GOOS: ${{ matrix.goos }}
|
||||
GOARCH: ${{ matrix.goarch }}
|
||||
GOARM: ${{ matrix.goarm }}
|
||||
CGO_ENABLED: 0
|
||||
|
||||
steps:
|
||||
- name: Checkout codebase
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Get the version
|
||||
id: get_version
|
||||
env:
|
||||
REF: ${{ github.ref }}
|
||||
run: |
|
||||
if [[ "$REF" == "refs/tags/v"* ]]; then
|
||||
tag=$(git describe --tags $(git rev-list --tags --max-count=1))
|
||||
version=${tag}
|
||||
else
|
||||
date=$(git log -1 --format="%cd" --date=short | sed s/-//g)
|
||||
count=$(git rev-list --count HEAD)
|
||||
commit=$(git rev-parse --short HEAD)
|
||||
version="unstable-$date.r${count}.$commit"
|
||||
fi
|
||||
echo "VERSION=$version" >> $GITHUB_OUTPUT
|
||||
echo "VERSION=$version" >> $GITHUB_ENV
|
||||
|
||||
- name: Show workflow information
|
||||
id: get_filename
|
||||
run: |
|
||||
export _NAME=$(jq ".[\"$GOOS-$GOARCH$GOARM\"].friendlyName" -r < install/friendly-filenames.json)
|
||||
echo "GOOS: $GOOS, GOARCH: $GOARCH, RELEASE_NAME: $_NAME"
|
||||
echo "ASSET_NAME=$_NAME" >> $GITHUB_OUTPUT
|
||||
echo "ASSET_NAME=$_NAME" >> $GITHUB_ENV
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v3
|
||||
with:
|
||||
go-version: '^1.19'
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
sudo apt-get update -y && sudo apt-get install -y clang llvm gcc-multilib
|
||||
|
||||
- name: Get project dependencies
|
||||
run: go mod download
|
||||
|
||||
- name: Build dae
|
||||
run: |
|
||||
mkdir -p ./build/
|
||||
make OUTPUT=build/dae-$ASSET_NAME VERSION=${{ steps.get_version.outputs.VERSION }}
|
||||
|
||||
- name: Smoking test
|
||||
if: matrix.goarch == 'amd64'
|
||||
run: ./build/dae-$ASSET_NAME --version
|
||||
|
||||
- name: Create ZIP archive and Signature
|
||||
run: |
|
||||
pushd build || exit 1
|
||||
zip -9vr ../dae-$ASSET_NAME.zip .
|
||||
popd || exit 1
|
||||
FILE=./dae-$ASSET_NAME.zip
|
||||
DGST=$FILE.dgst
|
||||
md5sum $FILE | awk '{print $1}' >>$DGST
|
||||
shasum -a 1 $FILE | awk '{print $1}' >>$DGST
|
||||
shasum -a 256 $FILE | awk '{print $1}' >>$DGST
|
||||
shasum -a 512 $FILE | awk '{print $1}' >>$DGST
|
||||
|
||||
- name: Upload files to Artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: dae-${{ steps.get_filename.outputs.ASSET_NAME }}.zip
|
||||
path: dae-${{ steps.get_filename.outputs.ASSET_NAME }}.zip
|
||||
|
||||
- name: Upload files to GitHub release
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
if: github.event_name == 'release'
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file_glob: true
|
||||
file: ./dae-${{ steps.get_filename.outputs.ASSET_NAME }}.zip*
|
||||
overwrite: true
|
||||
tag: ${{ github.ref }}
|
8
Makefile
8
Makefile
@ -8,6 +8,7 @@
|
||||
# Pin the default clang to a stable version.
|
||||
CLANG ?= clang
|
||||
STRIP ?= llvm-strip
|
||||
OUTPUT ?= dae
|
||||
CFLAGS := -O2 -Wall -Werror $(CFLAGS)
|
||||
|
||||
# Get version from .git.
|
||||
@ -23,11 +24,14 @@ endif
|
||||
.PHONY: ebpf dae
|
||||
|
||||
dae: ebpf
|
||||
go build -ldflags "-s -w -X github.com/v2rayA/dae/cmd.Version=$(VERSION)" .
|
||||
go build -o $(OUTPUT) -trimpath -ldflags "-s -w -X github.com/v2rayA/dae/cmd.Version=$(VERSION)" .
|
||||
|
||||
# $BPF_CLANG is used in go:generate invocations.
|
||||
ebpf: export BPF_CLANG := $(CLANG)
|
||||
ebpf: export BPF_STRIP := $(STRIP)
|
||||
ebpf: export BPF_CFLAGS := $(CFLAGS)
|
||||
ebpf:
|
||||
go generate ./component/control/...
|
||||
unset GOOS && \
|
||||
unset GOARCH && \
|
||||
unset GOARM && \
|
||||
go generate ./component/control/...
|
||||
|
13
install/friendly-filenames.json
Normal file
13
install/friendly-filenames.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"linux-386": { "friendlyName": "linux-x86_32" },
|
||||
"linux-amd64": { "friendlyName": "linux-x86_64" },
|
||||
"linux-arm5": { "friendlyName": "linux-armv5" },
|
||||
"linux-arm6": { "friendlyName": "linux-armv6" },
|
||||
"linux-arm7": { "friendlyName": "linux-armv7" },
|
||||
"linux-arm64": { "friendlyName": "linux-arm64" },
|
||||
"linux-mips64le": { "friendlyName": "linux-mips64le" },
|
||||
"linux-mips64": { "friendlyName": "linux-mips64" },
|
||||
"linux-mipsle": { "friendlyName": "linux-mips32le" },
|
||||
"linux-mips": { "friendlyName": "linux-mips32" },
|
||||
"linux-riscv64": { "friendlyName": "linux-riscv64" }
|
||||
}
|
Loading…
Reference in New Issue
Block a user