-
Notifications
You must be signed in to change notification settings - Fork 2
/
package.yaml
164 lines (164 loc) · 7.42 KB
/
package.yaml
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
maintainer: Chris Morrow <[email protected]>
version: 1.1.2
description: >
This Config File is used for building OS-specific build-magic binaries
and pushing them to GitHub.
prepare:
- &upgrade_pip
python3 -m pip install --upgrade pip
- &install_pyinstaller
python3 -m pip install pyinstaller==4.8
- &clone_repo
git clone --depth 1 --branch v{{ version }} https://github.com/cmmorrow/build-magic.git
- &install_repo
pip3 install ./build-magic
- &run_pyinstaller >
pyinstaller
-n "build-magic_{{ version }}" -D
--clean
--add-data build-magic/build_magic/static:build_magic/static
build-magic/build_magic/__main__.py
- &clean_pyinstaller
rm -rf /usr/local/bin/*
- &get_release_id
curl -s -u {{ user }}:{{ password }} https://api.github.com/repos/cmmorrow/build-magic/releases/tags/v{{ version }} | jq .id > RELEASE_ID
build-magic:
- stage:
name: debian
runner: docker
environment: debian:buster
working directory: /app
commands:
# Install requirements
- execute: apt update
- install: apt install -y python3 python3-dev python3-pip zlib1g-dev gpg curl jq libdigest-sha-perl git
- install: *upgrade_pip
- install: *install_pyinstaller
# Clone the repo
- execute: *clone_repo
# Install the repo
- install: *install_repo
# Build the application
- build: *run_pyinstaller
- execute: *clean_pyinstaller
# - test: &test_build
# dist/build-magic_{{ version }}/build-magic_{{ version }}
# Prep
- execute: mkdir -p $HOME/build-magic/usr/local/bin
- execute: mkdir -p $HOME/build-magic/DEBIAN
- execute: cp build-magic/package/debian/build-magic/control $HOME/build-magic/DEBIAN
- execute: sed -i 's/Version\x3a .*/Version\x3a {{ version }}/g' $HOME/build-magic/DEBIAN/control
- execute: cp -r dist/build-magic_{{ version }}/ $HOME/build-magic/usr/local/bin/
- execute: ln -s /usr/local/bin/build-magic_{{ version }}/build-magic_{{ version }} /usr/local/bin/build-magic
- execute: mv /usr/local/bin/build-magic $HOME/build-magic/usr/local/bin
# Build the package
- build: dpkg-deb --build $HOME/build-magic
- execute: mv $HOME/build-magic.deb $HOME/build-magic-{{ version }}_amd64.deb
# Install and test the package
- install: dpkg --install $HOME/build-magic-{{ version }}_amd64.deb
# - test: build-magic
# Upload the package to GitHub
- execute: *get_release_id
- execute: >
shasum -a 256 $HOME/build-magic-{{ version }}_amd64.deb
| tr -s ' '
| cut -d ' ' -f 1
> $HOME/build-magic-{{ version }}_amd64.hash
- release: >
curl -u {{ user }}:{{ password }}
--data-binary @"$HOME/build-magic-{{ version }}_amd64.deb"
-H "Content-Type: application/octet-stream"
https://uploads.github.com/repos/cmmorrow/build-magic/releases/$(cat RELEASE_ID)/assets?name=build-magic-{{ version }}_amd64.deb
- release: >
curl -u {{ user }}:{{ password }}
--data-binary @"$HOME/build-magic-{{ version }}_amd64.hash"
-H "Content-Type: application/octet-stream"
https://uploads.github.com/repos/cmmorrow/build-magic/releases/$(cat RELEASE_ID)/assets?name=build-magic-{{ version }}_amd64.hash
- stage:
name: centos
runner: docker
environment: centos:7
working directory: /app
commands:
# Install requirements
- install: yum install -y rpmdevtools python3 git
- install: yum install -y epel-release
- install: yum install -y jq
- install: *upgrade_pip
- install: *install_pyinstaller
# Clone the repo
- execute: *clone_repo
- install: *install_repo
# Build the application
- build: *run_pyinstaller
- execute: *clean_pyinstaller
# - test: *test_build
# Prep
- execute: rpmdev-setuptree
- execute: mkdir -p $HOME/rpmbuild/RPMS/x86_64
- execute: cp build-magic/package/centos/build-magic/build-magic.spec $HOME/rpmbuild/SPECS
- execute: sed -i 's/Version\x3a .*/Version\x3a {{ version }}/g' $HOME/rpmbuild/SPECS/build-magic.spec
- execute: cp -r dist/build-magic_{{ version }}/ $HOME
# Build the package
- build: rpmbuild -bb --target x86_64 $HOME/rpmbuild/SPECS/build-magic.spec
# Install and test the package
- install: ls -d $HOME/rpmbuild/RPMS/x86_64/* | xargs yum install -y
# - test: build-magic
# Upload the package
- execute: *get_release_id
- execute: >
sha256sum $HOME/rpmbuild/RPMS/x86_64/build-magic*
| tr -s ' '
| cut -d ' ' -f 1
> $HOME/$(basename $HOME/rpmbuild/RPMS/x86_64/build-magic* .rpm).hash
- release: >
curl -u {{ user }}:{{ password }}
--data-binary @$(ls $HOME/build-magic*.hash)
-H "Content-Type: application/octet-stream"
https://uploads.github.com/repos/cmmorrow/build-magic/releases/$(cat RELEASE_ID)/assets?name=$(ls $HOME/build-magic*.hash | xargs basename)
- release: >
curl -u {{ user }}:{{ password }}
--data-binary @$(ls $HOME/rpmbuild/RPMS/x86_64/*)
-H "Content-Type: application/octet-stream"
https://uploads.github.com/repos/cmmorrow/build-magic/releases/$(cat RELEASE_ID)/assets?name=$(ls $HOME/rpmbuild/RPMS/x86_64/* | xargs basename)
- stage:
name: windows
runner: local
environment: windows
working directory: '{{ working_directory }}'
action: cleanup
commands:
# Create a new virtual environment
- execute: python -m venv .\build-magic_{{ version }}-env
label: Creating new virtual environment
- install: .\build-magic_{{ version }}-env\Scripts\pip3 install pyinstaller
label: Installing pyinstaller
# Clone and install the repo
- execute: *clone_repo
label: Cloning build-magic repo
- install: .\build-magic_{{ version }}-env\Scripts\pip3 install .\build-magic
label: Install build-magic dependencies
# Build the application
- build: >
pyinstaller
-n "build-magic_{{ version }}" -D
--clean
--distpath .\build-magic\build-magic
--add-data build-magic\build_magic\static;build_magic\static
build-magic\build_magic\__main__.py
label: Run pyinstaller
# Create the batch file
- execute: echo @ECHO OFF >> build-magic\build-magic\build-magic.bat
- execute: echo %~dp0build-magic_{{ version }}\build-magic_{{ version }}.exe %* >> build-magic\build-magic\build-magic.bat
# Build the installer
- execute: copy .\build-magic\package\windows\build-magic\build-magic.nsi .
- build: makensis build-magic.nsi
# Upload the package to GitHub
- execute: *get_release_id
- release: >
for /F %r in (RELEASE_ID) DO
@curl -u {{ user }}:{{ password }}
--data-binary @"build-magic-{{ version }}_amd64_installer.exe"
-H "Content-Type: application/octet-stream"
https://uploads.github.com/repos/cmmorrow/build-magic/releases/%r/assets?name=build-magic-{{ version }}_amd64_installer.exe
label: Upload to GitHub