-
Notifications
You must be signed in to change notification settings - Fork 4
140 lines (115 loc) · 3.98 KB
/
build_release.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
130
131
132
133
134
135
136
137
138
139
140
name: Build-Release
on:
push:
tags:
- "*"
jobs:
build-linux-amd64:
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt update && sudo apt install libqt6* libxcb-cursor-dev -y
python -m pip install --upgrade pip
pip install pyinstaller pyserial requests PyQt6 pyyaml
- name: Build with PyInstaller
run: pyinstaller release_linux.spec
- name: Archive build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-linux-${{ github.run_number }}-${{ github.sha }}
path: dist
- name: Copy Bin
run: mkdir dist-bin && cp $(ls -1 dist/*) dist-bin/fishbot_tool_linux_amd64
- name: Archive build artifacts bin
uses: actions/upload-artifact@v4
with:
name: build-artifacts-linux-bin-${{ github.run_number }}-${{ github.sha }}
path: dist-bin
build-windows:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pyinstaller pyserial requests PyQt6 pyyaml
- name: Build with PyInstaller
run: pyinstaller release_win.spec
- name: Archive build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-windows-${{ github.run_number }}-${{ github.sha }}
path: dist
build-cli-version:
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Copy file to dist
run: mkdir dist && mv fishbot_tool_cli.py dist/
- name: Archive build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-cli-${{ github.run_number }}-${{ github.sha }}
path: dist
build-release-docker:
runs-on: ubuntu-latest
needs: [build-linux-amd64]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download built artifacts
uses: actions/download-artifact@v4
with:
name: build-artifacts-linux-bin-${{ github.run_number }}-${{ github.sha }}
path: ./dist-for-docker
- name: Docker login
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build And Publish Docker image
run: /bin/bash release_docker.sh
release:
runs-on: ubuntu-22.04
needs: [build-release-docker, build-windows, build-cli-version]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download Linux artifacts
uses: actions/download-artifact@v4
with:
name: build-artifacts-linux-${{ github.run_number }}-${{ github.sha }}
path: ./dist/linux
- name: Download Windows artifacts
uses: actions/download-artifact@v4
with:
name: build-artifacts-windows-${{ github.run_number }}-${{ github.sha }}
path: ./dist/windows
- name: Download CLI artifacts
uses: actions/download-artifact@v4
with:
name: build-artifacts-cli-${{ github.run_number }}-${{ github.sha }}
path: ./dist/cli
- name: Update release notes
run: |
echo "sed -i 's/DOCKER-TAG/$GITHUB_REF_NAME/g' ./release-notes.md" > change_tag.sh
/bin/bash change_tag.sh
- name: Create Release and Upload Release Asset
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
tag_name: ${{ github.ref_name }}
name: ${{ github.ref_name }}
body_path: release-notes.md
token: ${{ secrets.ACCESS_TOKEN }}
draft: false
prerelease: false
files: |
dist/linux/*
dist/windows/*
dist/cli/*