-
Notifications
You must be signed in to change notification settings - Fork 491
129 lines (109 loc) · 4.51 KB
/
packager_deb.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: packager_deb
on:
push:
branches:
- 'master'
paths:
- '**'
tags:
- 'v*.*.*'
- 'v*.*.*-*'
jobs:
build:
permissions:
id-token: write
contents: write
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@master
with:
go-version: 1.22.1
# Variables
- name: Adding TAG to ENV
run: echo "GIT_TAG=`echo $(git describe --tags --abbrev=0)`" >> $GITHUB_ENV
- name: adding version
run: |
NUMERIC_VERSION=$( echo ${{ env.GIT_TAG }} | sed 's/[^0-9.]//g' )
echo "VERSION=$NUMERIC_VERSION" >> $GITHUB_ENV
- name: Cleaning repo
run: make clean
- name: Building for amd64
run: make bor
- name: Making directory structure
run: mkdir -p packaging/deb/bor/usr/bin
- name: Copying necessary files
run: cp -rp build/bin/bor packaging/deb/bor/usr/bin/
- name: Delete control file
run: rm -rf packaging/deb/bor/DEBIAN/control
# Control file creation
- name: create control file
run: |
touch packaging/deb/bor/DEBIAN/control
echo "Package: bor" >> packaging/deb/bor/DEBIAN/control
echo "Version: ${{ env.VERSION }}" >> packaging/deb/bor/DEBIAN/control
echo "Section: base" >> packaging/deb/bor/DEBIAN/control
echo "Priority: optional" >> packaging/deb/bor/DEBIAN/control
echo "Architecture: amd64" >> packaging/deb/bor/DEBIAN/control
echo "Maintainer: [email protected]" >> packaging/deb/bor/DEBIAN/control
echo "Description: bor binary package" >> packaging/deb/bor/DEBIAN/control
- name: Creating package for binary for bor ${{ env.ARCH }}
run: cp -rp packaging/deb/bor packaging/deb/bor-${{ env.GIT_TAG }}-${{ env.ARCH }}
env:
ARCH: amd64
- name: Running package build
run: dpkg-deb --build --root-owner-group packaging/deb/bor-${{ env.GIT_TAG }}-${{ env.ARCH }}
env:
ARCH: amd64
- name: Cleaning build directory for arm64 build
run: make clean
- name: Updating the apt-get
run: sudo apt-get update -y
- name: Adding requirements for cross compile
run: sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu
- name: delete amd64 control file
run: rm -rf packaging/deb/bor/DEBIAN/control
- name: Building bor for arm64
run: GOARCH=arm64 GOOS=linux CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ CGO_ENABLED=1 go build -o build/bin/bor ./cmd/cli/main.go
- name: Copying necessary binary post arm64 build
run: cp -rp build/bin/bor packaging/deb/bor/usr/bin/
# Control file for arm64 creation
- name: create control file
run: |
touch packaging/deb/bor/DEBIAN/control
echo "Package: bor" >> packaging/deb/bor/DEBIAN/control
echo "Version: ${{ env.VERSION }}" >> packaging/deb/bor/DEBIAN/control
echo "Section: base" >> packaging/deb/bor/DEBIAN/control
echo "Priority: optional" >> packaging/deb/bor/DEBIAN/control
echo "Architecture: arm64" >> packaging/deb/bor/DEBIAN/control
echo "Maintainer: [email protected]" >> packaging/deb/bor/DEBIAN/control
echo "Description: bor binary package" >> packaging/deb/bor/DEBIAN/control
- name: Creating package for binary for bor ${{ env.ARCH }}
run: cp -rp packaging/deb/bor packaging/deb/bor-${{ env.GIT_TAG }}-${{ env.ARCH }}
env:
ARCH: arm64
- name: Running package build
run: dpkg-deb --build --root-owner-group packaging/deb/bor-${{ env.GIT_TAG }}-${{ env.ARCH }}
env:
ARCH: arm64
# Shasum
- name: shasum the bor debian package
run: cd packaging/deb/ && sha256sum bor-${{ env.GIT_TAG }}-${{ env.ARCH }}.deb > bor-${{ env.GIT_TAG }}-${{ env.ARCH }}.deb.checksum
env:
ARCH: amd64
- name: shasum the bor debian package
run: cd packaging/deb/ && sha256sum bor-${{ env.GIT_TAG }}-${{ env.ARCH }}.deb > bor-${{ env.GIT_TAG }}-${{ env.ARCH }}.deb.checksum
env:
ARCH: arm64
- name: Release bor Packages
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.GIT_TAG }}
prerelease: true
files: |
packaging/deb/bor**.deb
packaging/deb/bor**.deb.checksum