Skip to content

Commit

Permalink
upload builds to releases.drivechain.info
Browse files Browse the repository at this point in the history
  • Loading branch information
Ash-L2L committed Sep 27, 2024
1 parent ba5e9d4 commit c58fa0f
Showing 1 changed file with 215 additions and 0 deletions.
215 changes: 215 additions & 0 deletions .github/workflows/build-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
name: Build and Release

on:
pull_request:
push:
branches:
- "master"
workflow_dispatch:

jobs:
build-linux:
name: Build Linux binaries
runs-on: ubuntu-24.04
steps:
- name: install Linux deps
run: |
sudo apt-get install build-essential cmake libboost-dev \
libevent-dev pkg-config python3 qtbase5-dev qttools5-dev \
qttools5-dev-tools qtwayland5
- uses: actions/checkout@v4

- name: Restore cached dependencies
uses: actions/cache/restore@v4
with:
path: ./depends
key: linux-${{ hashFiles('depends/packages/**') }}

- name: download dependencies
run: make -C ./depends download-linux

- name: build dependencies
run: make -C ./depends -j4

- name: Cache dependencies
uses: actions/cache/save@v4
with:
path: ./depends
key: linux-${{ hashFiles('depends/packages/**') }}

- name: build
run: |
cmake -B build --toolchain depends/x86_64-pc-linux-gnu/toolchain.cmake
cmake --build build -j 4
- name: 'Set environment variables: version number'
run: |
BITCOIN_PATCHED_VERSION=$(grep -oP "(?<=^CMAKE_PROJECT_VERSION:STATIC=).+(?=)" build/CMakeCache.txt)
BRANCH_NAME=${GITHUB_REF#refs/heads/}
# Escape '/', '\' and space characters
ESCAPED_BRANCH_NAME=$(echo "$BRANCH_NAME" | sed 's/[\/\\ ]/\\&/g')
if [ "$ESCAPED_BRANCH_NAME" != "master" ]; then
BITCOIN_PATCHED_VERSION="${ESCAPED_BRANCH_NAME}-${BITCOIN_PATCHED_VERSION}"
fi
echo "BITCOIN_PATCHED_VERSION=$BITCOIN_PATCHED_VERSION" >> "$GITHUB_ENV"
- uses: actions/upload-artifact@v4
with:
name: bitcoin-patched-${{ env.BITCOIN_PATCHED_VERSION }}-x86_64-unknown-linux-gnu
if-no-files-found: error
path: |
build/src/bitcoind
build/src/bitcoin-cli
build/src/qt/bitcoin-qt
build-windows:
name: Build Windows binaries
runs-on: ubuntu-24.04
steps:
# g++-mingw-w64-x86-64 is the cross-compiling toolchain needed for
# producing Windows binaries
- name: install deps
run: |
sudo apt install g++-mingw-w64-x86-64 build-essential cmake curl \
libboost-dev libtool libevent-dev pkg-config curl git python3 \
qtbase5-dev qttools5-dev qttools5-dev-tools
- name: configure the Windows toolchain
run: sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix

- uses: actions/checkout@v4

- name: Restore cached dependencies
uses: actions/cache/restore@v4
with:
path: ./depends
key: windows-${{ hashFiles('depends/packages/**') }}

- name: download dependencies
run: make -C ./depends download-win

- name: build dependencies
run: gmake -C ./depends HOST=x86_64-w64-mingw32 -j 4

- name: Cache dependencies
uses: actions/cache/save@v4
with:
path: ./depends
key: windows-${{ hashFiles('depends/packages/**') }}

- name: build
run: |
cmake -B build --toolchain depends/x86_64-w64-mingw32/toolchain.cmake
cmake --build build -j 4
- name: 'Set environment variables: version number'
run: |
BITCOIN_PATCHED_VERSION=$(grep -oP "(?<=^CMAKE_PROJECT_VERSION:STATIC=).+(?=)" build/CMakeCache.txt)
BRANCH_NAME=${GITHUB_REF#refs/heads/}
# Escape '/', '\' and space characters
ESCAPED_BRANCH_NAME=$(echo "$BRANCH_NAME" | sed 's/[\/\\ ]/\\&/g')
if [ "$ESCAPED_BRANCH_NAME" != "master" ]; then
BITCOIN_PATCHED_VERSION="${ESCAPED_BRANCH_NAME}-${BITCOIN_PATCHED_VERSION}"
fi
echo "BITCOIN_PATCHED_VERSION=$BITCOIN_PATCHED_VERSION" >> "$GITHUB_ENV"
- uses: actions/upload-artifact@v4
with:
name: bitcoin-patched-${{ env.BITCOIN_PATCHED_VERSION }}-x86_64-w64-mingw32
if-no-files-found: error
path: |
build/src/bitcoind.exe
build/src/bitcoin-cli.exe
build/src/qt/bitcoin-qt.exe
build-macos:
name: Build macOS binaries
runs-on: macos-13
steps:
- uses: actions/checkout@v3

- name: install deps
run: |
brew install boost cmake libevent pkg-config qrencode qt@5
- name: Restore cached dependencies
uses: actions/cache/restore@v4
with:
path: ./depends
key: macos-${{ hashFiles('depends/packages/**') }}

- name: download dependencies
run: make -C ./depends download-osx

- name: build dependencies
run: make -C ./depends -j 4

- name: Cache dependencies
uses: actions/cache/save@v4
with:
path: ./depends
key: macos-${{ hashFiles('depends/packages/**') }}

- name: build
run: |
cmake -B build -DBUILD_GUI=ON --toolchain depends/x86_64-apple-darwin/toolchain.cmake
cmake --build build -j 4
- name: 'Set environment variables: version number'
run: |
BITCOIN_PATCHED_VERSION=$(grep -oP "(?<=^CMAKE_PROJECT_VERSION:STATIC=).+(?=)" build/CMakeCache.txt)
BRANCH_NAME=${GITHUB_REF#refs/heads/}
# Escape '/', '\' and space characters
ESCAPED_BRANCH_NAME=$(echo "$BRANCH_NAME" | sed 's/[\/\\ ]/\\&/g')
if [ "$ESCAPED_BRANCH_NAME" != "master" ]; then
BITCOIN_PATCHED_VERSION="${ESCAPED_BRANCH_NAME}-${BITCOIN_PATCHED_VERSION}"
fi
echo "BITCOIN_PATCHED_VERSION=$BITCOIN_PATCHED_VERSION" >> "$GITHUB_ENV"
- uses: actions/upload-artifact@v4
with:
name: bitcoin-patched-${{ env.BITCOIN_PATCHED_VERSION }}-x86_64-apple-darwin
if-no-files-found: error
path: |
build/src/bitcoind
build/src/bitcoin-cli
build/src/qt/bitcoin-qt
upload-artifacts-to-releases-drivechain-info:
name: Upload artifacts to releases.drivechain.info
runs-on: ubuntu-latest
needs: [build-linux, build-macos, build-windows]
if: github.repository_owner == 'LayerTwo-Labs'
steps:
- name: Download artifacts
uses: actions/download-artifact@v4

- name: Zip artifacts
run: |
ARTIFACT_PREFIX=''
BRANCH_NAME=${GITHUB_REF#refs/heads/}
# Escape '/', '\' and space characters
ESCAPED_BRANCH_NAME=$(echo "$BRANCH_NAME" | sed 's/[\/\\ ]/\\&/g')
if [ "$ESCAPED_BRANCH_NAME" != "master" ]; then
ARTIFACT_PREFIX="L1-bitcoin-patched-${ESCAPED_BRANCH_NAME}-latest"
else
ARTIFACT_PREFIX="L1-bitcoin-patched-latest"
fi
mv bitcoin-patched-*-x86_64-apple-darwin "${ARTIFACT_PREFIX}-x86_64-apple-darwin"
zip -r "${ARTIFACT_PREFIX}-x86_64-apple-darwin.zip" "${ARTIFACT_PREFIX}-x86_64-apple-darwin"
mv bitcoin-patched-*-x86_64-w64-mingw32 "${ARTIFACT_PREFIX}-x86_64-w64-mingw32"
zip -r "${ARTIFACT_PREFIX}-x86_64-w64-mingw32.zip" "${ARTIFACT_PREFIX}-x86_64-w64-mingw32"
mv bitcoin-patched-*-x86_64-unknown-linux-gnu "${ARTIFACT_PREFIX}-x86_64-unknown-linux-gnu"
zip -r "${ARTIFACT_PREFIX}-x86_64-unknown-linux-gnu.zip" "${ARTIFACT_PREFIX}-x86_64-unknown-linux-gnu"
- name: Upload artifacts to releases.drivechain.info
uses: cross-the-world/ssh-scp-ssh-pipelines@latest
with:
host: 45.33.96.47
user: root
pass: ${{ secrets.RELEASES_SERVER_PW }}
port: 22
scp: |
'L1-bitcoin-patched-*latest.zip' => '/var/www/html/'

0 comments on commit c58fa0f

Please sign in to comment.