-
Notifications
You must be signed in to change notification settings - Fork 12
137 lines (116 loc) · 5.02 KB
/
docker_build_and_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
name: Docker Build and Release
on:
push:
branches:
- master # or the name of your default branch
jobs:
build_and_release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Get branch name
id: get_branch_name
run: |
echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV
- name: Get version
id: get_version
run: |
echo "VERSION=$(grep 'version :' meson.build | cut -d "'" -f 2)" >> $GITHUB_ENV
- name: Get commit hash
id: get_commit_hash
run: |
echo "COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Check if commit is tagged with release
id: check_tag
run: |
echo "IS_RELEASE=$(if git describe --exact-match --tags HEAD 2>/dev/null | grep -q '^release'; then echo 'true'; else echo 'false'; fi)" >> $GITHUB_ENV
- name: Docker Build Windows
run: DOCKER_BUILDKIT=1 docker build . -f Dockerfiles/Dockerfile_Windows --output ./build/Windows
- name: Docker Build Ubuntu 18.04
run: DOCKER_BUILDKIT=1 docker build . -f Dockerfiles/Dockerfile_Ubuntu18 --output ./build/Ubuntu18
- name: Docker Build Ubuntu 20.04
run: DOCKER_BUILDKIT=1 docker build . -f Dockerfiles/Dockerfile_Ubuntu20 --output ./build/Ubuntu20
- name: Docker Build Ubuntu 22.04
run: DOCKER_BUILDKIT=1 docker build . -f Dockerfiles/Dockerfile_Ubuntu22 --output ./build/Ubuntu22
- name: Build for HiveOS
run: |
cp ./integrations/hiveos/* ./build/Ubuntu18
./build/Ubuntu18/build.sh janusminer_hiveos ${{ env.VERSION }}
- name: Build for HiveOS Beta
run: |
cp ./integrations/hiveos/* ./build/Ubuntu20
./build/Ubuntu20/build.sh janusminer_hiveosbeta ${{ env.VERSION }}
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ env.VERSION }}
release_name: janusminer ${{ env.VERSION }}
body: |
This is an automated pre-release of ${{ env.BRANCH_NAME }}-${{ env.VERSION }}-${{ env.COMMIT_HASH }} to see what are the changes in this release please check the commit history.
prerelease: ${{ env.IS_RELEASE }}
- name: Upload HiveOS build
id: upload-docker-build-output-hiveos
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/Ubuntu18/janusminer_hiveos-${{ env.VERSION }}.tgz
asset_name: janusminer_hiveos-${{ env.VERSION }}.tgz
asset_content_type: application/octet-stream
- name: Upload HiveOS Beta build
id: upload-docker-build-output-hiveosbeta
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/Ubuntu20/janusminer_hiveosbeta-${{ env.VERSION }}.tgz
asset_name: janusminer_hiveosbeta-${{ env.VERSION }}.tgz
asset_content_type: application/octet-stream
- name: Upload Windows build
id: upload-docker-build-output-windows
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/Windows/wart-miner.exe
asset_name: janusminer-windows.exe
asset_content_type: application/octet-stream
- name: Upload Ubuntu 18.04 build
id: upload-docker-build-output-ubuntu18
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/Ubuntu18/wart-miner
asset_name: janusminer-ubuntu18
asset_content_type: application/octet-stream
- name: Upload Ubuntu 20.04 build
id: upload-docker-build-output-ubuntu20
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/Ubuntu20/wart-miner
asset_name: janusminer-ubuntu20
asset_content_type: application/octet-stream
- name: Upload Ubuntu 22.04 build
id: upload-docker-build-output-ubuntu22
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/Ubuntu22/wart-miner
asset_name: janusminer-ubuntu22
asset_content_type: application/octet-stream