Skip to content

Commit 0317de1

Browse files
committed
ci: add build + release workflow
1 parent aa56345 commit 0317de1

1 file changed

Lines changed: 95 additions & 0 deletions

File tree

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
name: Build, release and upload to releases.drivechain.info
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- master
8+
workflow_dispatch:
9+
10+
jobs:
11+
build-release:
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
include:
16+
- os: ubuntu-latest
17+
name: x86_64-unknown-linux-gnu
18+
binary-suffix: ""
19+
20+
- os: macos-latest-large
21+
name: x86_64-apple-darwin
22+
binary-suffix: ""
23+
24+
- os: ubuntu-latest
25+
name: x86_64-pc-windows-gnu
26+
binary-suffix: .exe
27+
28+
name: Build and release (${{ matrix.name }})
29+
runs-on: ${{ matrix.os }}
30+
permissions:
31+
contents: write
32+
timeout-minutes: 20
33+
steps:
34+
- uses: actions/checkout@v4
35+
with:
36+
submodules: "recursive"
37+
38+
- name: Build
39+
run: |
40+
./autogen.sh
41+
./configure
42+
make -j
43+
44+
- name: "Set environment variables: version number and output filenames"
45+
run: |
46+
APP_DIRNAME="cpuminer-latest-${{ matrix.name }}"
47+
APP_FILENAME="${APP_DIRNAME}${{ matrix.binary-suffix }}"
48+
echo "APP_FILENAME=$APP_FILENAME" >> "$GITHUB_ENV"
49+
echo "APP_DIRNAME=$APP_DIRNAME" >> "$GITHUB_ENV"
50+
51+
- run: |
52+
mkdir release
53+
cp cpuminer${{ matrix.binary-suffix }} release/${{ env.APP_FILENAME }}
54+
55+
- name: "Upload artifacts"
56+
uses: actions/upload-artifact@v4
57+
with:
58+
name: ${{ env.APP_DIRNAME }}
59+
if-no-files-found: error
60+
path: |
61+
release/${{ env.APP_FILENAME }}
62+
63+
- name: Release
64+
uses: softprops/action-gh-release@v2.0.2
65+
if: startsWith(github.ref, 'refs/tags/')
66+
with:
67+
files: |
68+
release/${{ env.APP_FILENAME }}
69+
fail_on_unmatched_files: true
70+
71+
upload-releases-to-releases-drivechain-info:
72+
name: Upload releases to releases.drivechain.info
73+
runs-on: ubuntu-latest
74+
needs: [build-release]
75+
if: github.ref == 'refs/heads/master'
76+
steps:
77+
- name: Download artifacts
78+
uses: actions/download-artifact@v4
79+
80+
- name: Create zip files for releases.drivechain.info
81+
run: |
82+
shopt -s extglob
83+
zip -r cpuminer-latest-x86_64-apple-darwin.zip cpuminer-latest-x86_64-apple-darwin
84+
zip -r cpuminer-latest-x86_64-pc-windows-gnu.zip cpuminer-latest-x86_64-pc-windows-gnu
85+
zip -r cpuminer-latest-x86_64-unknown-linux-gnu.zip cpuminer-latest-x86_64-unknown-linux-gnu
86+
87+
- name: Upload release assets to releases.drivechain.info
88+
uses: appleboy/scp-action@v1
89+
with:
90+
host: 45.33.96.47
91+
username: root
92+
password: ${{ secrets.RELEASES_SERVER_PW }}
93+
port: 22
94+
source: "cpuminer-latest-*.zip"
95+
target: "/var/www/html/"

0 commit comments

Comments
 (0)