Skip to content

Commit e6bfad0

Browse files
vrogojinclaude
andcommitted
Release 1.8.0: update version string, add release workflow, fix Docker CI
- Change codename from dubai-experimental to dubai (configure.ac) - Add release.yml workflow for Linux, Windows, macOS binary builds - Fix docker-publish.yml: remove /alpha suffix from GHCR image path (was causing permission_denied on every release since 1.4.0) - Remove broken dockerhub-description step (uses GHCR, not Docker Hub) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 0d064d4 commit e6bfad0

3 files changed

Lines changed: 252 additions & 12 deletions

File tree

.github/workflows/docker-publish.yml

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
fi
4646
echo "VERSION=${VERSION}" >> $GITHUB_ENV
4747
REPO_LOWER=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')
48-
echo "IMAGE_NAME=ghcr.io/${REPO_LOWER}/alpha" >> $GITHUB_ENV
48+
echo "IMAGE_NAME=ghcr.io/${REPO_LOWER}" >> $GITHUB_ENV
4949
5050
- name: Build and push Docker image
5151
uses: docker/build-push-action@v4
@@ -59,13 +59,3 @@ jobs:
5959
cache-from: type=gha
6060
cache-to: type=gha,mode=max
6161

62-
- name: Update Docker Hub description
63-
uses: peter-evans/dockerhub-description@v3
64-
if: github.event_name == 'release'
65-
with:
66-
registry: ghcr.io
67-
repository: ${{ github.repository_owner }}/alpha
68-
username: ${{ github.actor }}
69-
password: ${{ secrets.GITHUB_TOKEN }}
70-
short-description: "Alpha cryptocurrency node"
71-
readme-filepath: ./docker/README.md

.github/workflows/release.yml

Lines changed: 250 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
name: Release Build
2+
3+
on:
4+
release:
5+
types: [published]
6+
workflow_dispatch:
7+
inputs:
8+
tag:
9+
description: 'Release tag (e.g., 1.8.0)'
10+
required: false
11+
default: ''
12+
13+
jobs:
14+
build-linux:
15+
name: Build Linux x86_64
16+
runs-on: ubuntu-22.04
17+
timeout-minutes: 120
18+
permissions:
19+
contents: write
20+
steps:
21+
- name: Checkout
22+
uses: actions/checkout@v4
23+
with:
24+
fetch-depth: 0
25+
26+
- name: Install build dependencies
27+
run: |
28+
sudo apt-get update
29+
sudo apt-get install -y build-essential libtool autotools-dev automake \
30+
pkg-config bsdmainutils python3 curl cmake bison git
31+
32+
- name: Determine version
33+
id: version
34+
run: |
35+
MAJOR=$(grep 'define(_ALPHA_CLIENT_VERSION_MAJOR' configure.ac | grep -o '[0-9]*')
36+
MINOR=$(grep 'define(_ALPHA_CLIENT_VERSION_MINOR' configure.ac | grep -o '[0-9]*')
37+
BUILD=$(grep 'define(_ALPHA_CLIENT_VERSION_BUILD' configure.ac | grep -o '[0-9]*')
38+
CODENAME=$(grep '_ALPHA_CLIENT_RELEASE_NAME_MAJOR' configure.ac | sed 's/.*\[\(.*\)\].*/\1/')
39+
CORE_MAJOR=$(grep 'define(_CLIENT_VERSION_MAJOR' configure.ac | grep -o '[0-9]*')
40+
CORE_MINOR=$(grep 'define(_CLIENT_VERSION_MINOR' configure.ac | grep -o '[0-9]*')
41+
CORE_BUILD=$(grep 'define(_CLIENT_VERSION_BUILD' configure.ac | grep -o '[0-9]*')
42+
PKG_VERSION="${MAJOR}.${MINOR}.${BUILD}-${CODENAME}-core-${CORE_MAJOR}.${CORE_MINOR}.${CORE_BUILD}"
43+
echo "PKG_VERSION=${PKG_VERSION}" >> $GITHUB_OUTPUT
44+
echo "Package version: ${PKG_VERSION}"
45+
46+
- name: Cache depends
47+
uses: actions/cache@v4
48+
with:
49+
path: |
50+
depends/built
51+
depends/sources
52+
key: depends-linux-x86_64-${{ hashFiles('depends/packages/*.mk') }}
53+
restore-keys: depends-linux-x86_64-
54+
55+
- name: Build depends
56+
run: make -C depends NO_QT=1 -j$(nproc)
57+
58+
- name: Build Alpha
59+
run: |
60+
./autogen.sh
61+
./configure --without-gui --prefix=$PWD/depends/x86_64-pc-linux-gnu \
62+
--program-transform-name='s/bitcoin/alpha/g'
63+
make -j$(nproc)
64+
make install
65+
66+
- name: Package
67+
run: |
68+
ARTIFACT_NAME="alpha-${{ steps.version.outputs.PKG_VERSION }}-x86_64-pc-linux-gnu"
69+
mkdir -p "${ARTIFACT_NAME}/bin"
70+
cp depends/x86_64-pc-linux-gnu/bin/alphad "${ARTIFACT_NAME}/bin/"
71+
cp depends/x86_64-pc-linux-gnu/bin/alpha-cli "${ARTIFACT_NAME}/bin/"
72+
cp depends/x86_64-pc-linux-gnu/bin/alpha-tx "${ARTIFACT_NAME}/bin/"
73+
cp depends/x86_64-pc-linux-gnu/bin/alpha-wallet "${ARTIFACT_NAME}/bin/"
74+
cp depends/x86_64-pc-linux-gnu/bin/alpha-util "${ARTIFACT_NAME}/bin/"
75+
cp COPYING "${ARTIFACT_NAME}/"
76+
tar czf "${ARTIFACT_NAME}.tgz" "${ARTIFACT_NAME}"
77+
echo "ARTIFACT=${ARTIFACT_NAME}.tgz" >> $GITHUB_ENV
78+
79+
- name: Upload release asset
80+
if: github.event_name == 'release'
81+
uses: softprops/action-gh-release@v2
82+
with:
83+
files: ${{ env.ARTIFACT }}
84+
env:
85+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
86+
87+
- name: Upload build artifact
88+
uses: actions/upload-artifact@v4
89+
with:
90+
name: linux-x86_64
91+
path: ${{ env.ARTIFACT }}
92+
93+
build-windows:
94+
name: Build Windows x64
95+
runs-on: ubuntu-22.04
96+
timeout-minutes: 180
97+
permissions:
98+
contents: write
99+
steps:
100+
- name: Checkout
101+
uses: actions/checkout@v4
102+
with:
103+
fetch-depth: 0
104+
105+
- name: Install build dependencies
106+
run: |
107+
sudo apt-get update
108+
sudo apt-get install -y build-essential libtool autotools-dev automake \
109+
pkg-config bsdmainutils python3 curl cmake bison git \
110+
g++-mingw-w64-x86-64
111+
sudo update-alternatives --set x86_64-w64-mingw32-g++ \
112+
/usr/bin/x86_64-w64-mingw32-g++-posix
113+
114+
- name: Determine version
115+
id: version
116+
run: |
117+
MAJOR=$(grep 'define(_ALPHA_CLIENT_VERSION_MAJOR' configure.ac | grep -o '[0-9]*')
118+
MINOR=$(grep 'define(_ALPHA_CLIENT_VERSION_MINOR' configure.ac | grep -o '[0-9]*')
119+
BUILD=$(grep 'define(_ALPHA_CLIENT_VERSION_BUILD' configure.ac | grep -o '[0-9]*')
120+
CODENAME=$(grep '_ALPHA_CLIENT_RELEASE_NAME_MAJOR' configure.ac | sed 's/.*\[\(.*\)\].*/\1/')
121+
CORE_MAJOR=$(grep 'define(_CLIENT_VERSION_MAJOR' configure.ac | grep -o '[0-9]*')
122+
CORE_MINOR=$(grep 'define(_CLIENT_VERSION_MINOR' configure.ac | grep -o '[0-9]*')
123+
CORE_BUILD=$(grep 'define(_CLIENT_VERSION_BUILD' configure.ac | grep -o '[0-9]*')
124+
PKG_VERSION="${MAJOR}.${MINOR}.${BUILD}-${CODENAME}-core-${CORE_MAJOR}.${CORE_MINOR}.${CORE_BUILD}"
125+
echo "PKG_VERSION=${PKG_VERSION}" >> $GITHUB_OUTPUT
126+
127+
- name: Cache depends
128+
uses: actions/cache@v4
129+
with:
130+
path: |
131+
depends/built
132+
depends/sources
133+
key: depends-win64-${{ hashFiles('depends/packages/*.mk') }}
134+
restore-keys: depends-win64-
135+
136+
- name: Build depends
137+
run: make HOST=x86_64-w64-mingw32 -C depends NO_QT=1 -j$(nproc)
138+
139+
- name: Build Alpha
140+
run: |
141+
./autogen.sh
142+
CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site \
143+
./configure --prefix=$PWD/depends/x86_64-w64-mingw32 \
144+
--program-transform-name='s/bitcoin/alpha/g'
145+
make -j$(nproc)
146+
make install
147+
148+
- name: Package
149+
run: |
150+
ARTIFACT_NAME="alpha-${{ steps.version.outputs.PKG_VERSION }}-win64-setup"
151+
mkdir -p "${ARTIFACT_NAME}"
152+
cp depends/x86_64-w64-mingw32/bin/alphad.exe "${ARTIFACT_NAME}/"
153+
cp depends/x86_64-w64-mingw32/bin/alpha-cli.exe "${ARTIFACT_NAME}/"
154+
cp depends/x86_64-w64-mingw32/bin/alpha-tx.exe "${ARTIFACT_NAME}/"
155+
cp depends/x86_64-w64-mingw32/bin/alpha-wallet.exe "${ARTIFACT_NAME}/"
156+
cp depends/x86_64-w64-mingw32/bin/alpha-util.exe "${ARTIFACT_NAME}/"
157+
cp COPYING "${ARTIFACT_NAME}/"
158+
zip -r "${ARTIFACT_NAME}.zip" "${ARTIFACT_NAME}"
159+
echo "ARTIFACT=${ARTIFACT_NAME}.zip" >> $GITHUB_ENV
160+
161+
- name: Upload release asset
162+
if: github.event_name == 'release'
163+
uses: softprops/action-gh-release@v2
164+
with:
165+
files: ${{ env.ARTIFACT }}
166+
env:
167+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
168+
169+
- name: Upload build artifact
170+
uses: actions/upload-artifact@v4
171+
with:
172+
name: win64
173+
path: ${{ env.ARTIFACT }}
174+
175+
build-macos:
176+
name: Build macOS aarch64
177+
runs-on: macos-14
178+
timeout-minutes: 180
179+
permissions:
180+
contents: write
181+
steps:
182+
- name: Checkout
183+
uses: actions/checkout@v4
184+
with:
185+
fetch-depth: 0
186+
187+
- name: Install dependencies
188+
run: brew install automake libtool pkg-config
189+
190+
- name: Determine version
191+
id: version
192+
run: |
193+
MAJOR=$(grep 'define(_ALPHA_CLIENT_VERSION_MAJOR' configure.ac | grep -o '[0-9]*')
194+
MINOR=$(grep 'define(_ALPHA_CLIENT_VERSION_MINOR' configure.ac | grep -o '[0-9]*')
195+
BUILD=$(grep 'define(_ALPHA_CLIENT_VERSION_BUILD' configure.ac | grep -o '[0-9]*')
196+
CODENAME=$(grep '_ALPHA_CLIENT_RELEASE_NAME_MAJOR' configure.ac | sed 's/.*\[\(.*\)\].*/\1/')
197+
CORE_MAJOR=$(grep 'define(_CLIENT_VERSION_MAJOR' configure.ac | grep -o '[0-9]*')
198+
CORE_MINOR=$(grep 'define(_CLIENT_VERSION_MINOR' configure.ac | grep -o '[0-9]*')
199+
CORE_BUILD=$(grep 'define(_CLIENT_VERSION_BUILD' configure.ac | grep -o '[0-9]*')
200+
PKG_VERSION="${MAJOR}.${MINOR}.${BUILD}-${CODENAME}-core-${CORE_MAJOR}.${CORE_MINOR}.${CORE_BUILD}"
201+
echo "PKG_VERSION=${PKG_VERSION}" >> $GITHUB_OUTPUT
202+
203+
- name: Cache depends
204+
uses: actions/cache@v4
205+
with:
206+
path: |
207+
depends/built
208+
depends/sources
209+
key: depends-macos-aarch64-${{ hashFiles('depends/packages/*.mk') }}
210+
restore-keys: depends-macos-aarch64-
211+
212+
- name: Build depends
213+
run: make -C depends NO_QT=1 -j$(sysctl -n hw.ncpu)
214+
215+
- name: Build Alpha
216+
run: |
217+
./autogen.sh
218+
MACOS_HOST=$(ls depends/ | grep apple-darwin | head -1)
219+
./configure --without-gui --prefix=$PWD/depends/${MACOS_HOST} \
220+
--program-transform-name='s/bitcoin/alpha/g'
221+
make -j$(sysctl -n hw.ncpu)
222+
make install
223+
224+
- name: Package
225+
run: |
226+
MACOS_HOST=$(ls depends/ | grep apple-darwin | head -1)
227+
ARTIFACT_NAME="alpha-${{ steps.version.outputs.PKG_VERSION }}-macos-sonoma-aarch64"
228+
mkdir -p "${ARTIFACT_NAME}/bin"
229+
cp depends/${MACOS_HOST}/bin/alphad "${ARTIFACT_NAME}/bin/"
230+
cp depends/${MACOS_HOST}/bin/alpha-cli "${ARTIFACT_NAME}/bin/"
231+
cp depends/${MACOS_HOST}/bin/alpha-tx "${ARTIFACT_NAME}/bin/"
232+
cp depends/${MACOS_HOST}/bin/alpha-wallet "${ARTIFACT_NAME}/bin/"
233+
cp depends/${MACOS_HOST}/bin/alpha-util "${ARTIFACT_NAME}/bin/"
234+
cp COPYING "${ARTIFACT_NAME}/"
235+
zip -r "${ARTIFACT_NAME}.zip" "${ARTIFACT_NAME}"
236+
echo "ARTIFACT=${ARTIFACT_NAME}.zip" >> $GITHUB_ENV
237+
238+
- name: Upload release asset
239+
if: github.event_name == 'release'
240+
uses: softprops/action-gh-release@v2
241+
with:
242+
files: ${{ env.ARTIFACT }}
243+
env:
244+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
245+
246+
- name: Upload build artifact
247+
uses: actions/upload-artifact@v4
248+
with:
249+
name: macos-aarch64
250+
path: ${{ env.ARTIFACT }}

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ define(_COPYRIGHT_HOLDERS,[The %s developers])
99
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]])
1010

1111
dnl !ALPHA
12-
define(_ALPHA_CLIENT_RELEASE_NAME_MAJOR, [dubai-experimental])
12+
define(_ALPHA_CLIENT_RELEASE_NAME_MAJOR, [dubai])
1313
define(_ALPHA_CLIENT_VERSION_MAJOR, 1)
1414
define(_ALPHA_CLIENT_VERSION_MINOR, 8)
1515
define(_ALPHA_CLIENT_VERSION_BUILD, 0)

0 commit comments

Comments
 (0)