Skip to content

Commit

Permalink
revert to current ver
Browse files Browse the repository at this point in the history
  • Loading branch information
canonbrother committed Dec 19, 2023
1 parent c62d1bc commit 937c812
Show file tree
Hide file tree
Showing 2 changed files with 149 additions and 52 deletions.
120 changes: 76 additions & 44 deletions .github/workflows/build-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,74 +25,106 @@ env:
GIT_VERSION: 1

jobs:
linux-x64:
build:
runs-on: ubuntu-latest
container: defi/ain-builder:latest
strategy:
matrix:
target: [x86_64-pc-linux-gnu, x86_64-w64-mingw32, x86_64-apple-darwin]
env:
TARGET: x86_64-pc-linux-gnu
TARGET: ${{matrix.target}}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- run: git config --global --add safe.directory '*'

- name: Populate environment
run: ./make.sh ci-export-vars

- name: Build and package
run: ./make.sh docker-release
- name: Setup dependencies
run: ./make.sh ci-setup-deps

- name: Publish artifact - x86_64-pc-linux-gnu
uses: actions/upload-artifact@v3
with:
name: defichain-${{ env.BUILD_VERSION }}-x86_64-pc-linux-gnu
path: ./build/defichain-${{ env.BUILD_VERSION }}-x86_64-pc-linux-gnu.tar.gz
- name: Setup user dependencies
run: ./make.sh ci-setup-user-deps

- name: Login to Docker Hub
uses: docker/login-action@v2
- name: Restore cpp build cache
id: cpp-cache-restore
uses: actions/cache/restore@v3
with:
username: ${{ env.DOCKER_HUB_USER }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}

- name: Push to Docker Hub
run: |
set -e; ver=${{ env.BUILD_VERSION }}
docker tag defichain-x86_64-pc-linux-gnu:${ver} defi/defichain:${ver}
docker push defi/defichain:${ver}
win-x64:
runs-on: ubuntu-latest
env:
TARGET: x86_64-w64-mingw32

steps:
- uses: actions/checkout@v3

- name: Populate environment
run: ./make.sh ci-export-vars
path: |
./build/depends
./build/src
~/.ccache
key: cpp-${{ env.TARGET }}-${{ env.BUILD_TYPE }}

- name: Rust build cache
uses: Swatinem/rust-cache@v2
id: rust-cache-restore
with:
workspaces: lib -> ../build/lib/target
save-if: ${{ github.ref == 'refs/heads/master' }}
shared-key: ${{ env.TARGET }}

- name: Build and package
run: ./make.sh docker-release
run: ./make.sh release

- name: Publish artifact - x86_64-w64-mingw32
- name: Publish artifact
uses: actions/upload-artifact@v3
with:
name: defichain-${{ env.BUILD_VERSION }}-x86_64-w64-mingw32
path: ./build/defichain-${{ env.BUILD_VERSION }}-x86_64-w64-mingw32.tar.gz
name: defichain-${{ env.BUILD_VERSION }}-${{ env.TARGET }}
path: ./build/defichain-${{ env.BUILD_VERSION }}-${{ env.TARGET }}.${{ env.PKG_TYPE }}

- name: Delete previous cpp build cache
if: ${{ github.ref == 'refs/heads/master' && steps.cpp-cache-restore.outputs.cache-hit }}
continue-on-error: true
run: |
gh extension install actions/gh-actions-cache
gh actions-cache delete "cpp-${{ env.TARGET }}-${{ env.BUILD_TYPE }}" --confirm
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Save cpp build cache
if: ${{ github.ref == 'refs/heads/master' }}
uses: actions/cache/save@v3
with:
path: |
./build/depends
./build/src
~/.ccache
key: cpp-${{ env.TARGET }}-${{ env.BUILD_TYPE }}

osx-x64:
docker-build:
runs-on: ubuntu-latest
needs: [build]
env:
TARGET: x86_64-apple-darwin
TARGET: x86_64-pc-linux-gnu

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Populate environment
run: ./make.sh ci-export-vars

- name: Build and package
run: ./make.sh docker-release
- name: Download binaries
uses: actions/download-artifact@v3
with:
name: defichain-${{ env.BUILD_VERSION }}-${{ env.TARGET }}
path: ./build/

- name: Unpack binaries
run: tar -xvzf ./build/defichain-${{ env.BUILD_VERSION }}-${{ env.TARGET }}.${{ env.PKG_TYPE }} -C ./build/

- name: Publish artifact - x86_64-apple-darwin
uses: actions/upload-artifact@v3
- name: Build defi image
run: rm .dockerignore && ./make.sh docker-build-from-binaries

- name: Login to Docker Hub
uses: docker/login-action@v2
with:
name: defichain-${{ env.BUILD_VERSION }}-x86_64-apple-darwin
path: ./build/defichain-${{ env.BUILD_VERSION }}-x86_64-apple-darwin.tar.gz
username: ${{ env.DOCKER_HUB_USER }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}

- name: Push to Docker Hub
run: |
set -e; ver=${{ env.BUILD_VERSION }}
docker tag defichain-${{ env.TARGET }}:${ver} defi/defichain:${ver}
docker push defi/defichain:${ver}
81 changes: 73 additions & 8 deletions make.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ setup_vars() {
fi

DOCKER_ROOT_CONTEXT=${DOCKER_ROOT_CONTEXT:-"."}
DOCKER_RELATIVE_BUILD_DIR=${DOCKER_RELATIVE_BUILD_DIR:-"./build"}
DOCKERFILES_DIR=${DOCKERFILES_DIR:-"./contrib/dockerfiles"}
DEFI_DOCKERFILE=${DEFI_DOCKERFILE:-"${DOCKERFILES_DIR}/defi.dockerfile"}

ROOT_DIR="$(_canonicalize "${_SCRIPT_DIR}")"

Expand Down Expand Up @@ -219,10 +221,13 @@ package() {
local build_dir="${BUILD_DIR}"

local pkg_name="${img_prefix}-${img_version}-${target}"
local pkg_tar_file_name="${pkg_name}.tar.gz"

local pkg_path
pkg_path="$(_canonicalize "${build_dir}/${pkg_tar_file_name}")"
if [[ "$target" == "x86_64-w64-mingw32" ]]; then
pkg_path="$(_canonicalize "${build_dir}/${pkg_name}.zip")"
else
pkg_path="$(_canonicalize "${build_dir}/${pkg_name}.tar.gz")"
fi

local versioned_name="${img_prefix}-${img_version}"
local versioned_build_dir="${build_dir}/${versioned_name}"
Expand All @@ -235,8 +240,17 @@ package() {

echo "> packaging: ${pkg_name} from ${versioned_build_dir}"

_ensure_enter_dir "${versioned_build_dir}"
_tar --transform "s,^./,${versioned_name}/," -czf "${pkg_path}" ./*
if [[ "$target" == "x86_64-w64-mingw32" ]]; then
_ensure_enter_dir "${versioned_build_dir}"
cd ..
local dir_to_zip
dir_to_zip=$(basename "${versioned_build_dir}")
zip -r "${pkg_path}" "${dir_to_zip}/"
else
_ensure_enter_dir "${versioned_build_dir}"
_tar --transform "s,^./,${versioned_name}/," -czf "${pkg_path}" ./*
fi
sha256sum "${pkg_path}" > "${pkg_path}.SHA256"
_exit_dir

echo "> package: ${pkg_path}"
Expand Down Expand Up @@ -282,7 +296,6 @@ docker_deploy() {
local img="${img_prefix}-${target}:${img_version}"
echo "> deploy from: ${img}"

local pkg_name="${img_prefix}-${img_version}-${target}"
local versioned_name="${img_prefix}-${img_version}"
local versioned_build_dir="${build_dir}/${versioned_name}"

Expand Down Expand Up @@ -311,6 +324,29 @@ docker_release() {
_sign "$target"
}

docker_build_from_binaries() {
local target=${1:-${TARGET}}
local img_prefix="${IMAGE_PREFIX}"
local img_version="${IMAGE_VERSION}"
local build_dir="${DOCKER_RELATIVE_BUILD_DIR}"

local docker_context="${DOCKER_ROOT_CONTEXT}"
local docker_file="${DEFI_DOCKERFILE}"

echo "> docker-build-from-binaries";

local img="${img_prefix}-${target}:${img_version}"
echo "> building: ${img}"
echo "> docker defi build: ${img}"

local versioned_name="${img_prefix}-${img_version}"
local versioned_build_dir="${build_dir}/${versioned_name}"

docker build -f "${docker_file}" \
--build-arg BINARY_DIR="${versioned_build_dir}" \
-t "${img}" "${docker_context}"
}

docker_clean_builds() {
echo "> clean: defichain build images"
_docker_clean "org.defichain.name=defichain"
Expand Down Expand Up @@ -659,9 +695,9 @@ pkg_install_deps() {
software-properties-common build-essential git libtool autotools-dev automake \
pkg-config bsdmainutils python3 python3-pip python3-venv libssl-dev libevent-dev libboost-system-dev \
libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev \
libminiupnpc-dev libzmq3-dev libqrencode-dev wget \
libminiupnpc-dev libzmq3-dev libqrencode-dev wget ccache \
libdb-dev libdb++-dev libdb5.3 libdb5.3-dev libdb5.3++ libdb5.3++-dev \
curl cmake unzip libc6-dev gcc-multilib locales locales-all
curl cmake zip unzip libc6-dev gcc-multilib locales locales-all

_fold_end
}
Expand Down Expand Up @@ -713,6 +749,20 @@ pkg_install_deps_osx_tools() {
_fold_end
}

pkg_install_gh_cli() {
_fold_start "pkg-install-gh_cli"
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | \
dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg && \
chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] \
https://cli.github.com/packages stable main" | \
tee /etc/apt/sources.list.d/github-cli.list > /dev/null
apt-get update
apt-get install -y gh

}

pkg_install_llvm() {
_fold_start "pkg-install-llvm"
# shellcheck disable=SC2086
Expand Down Expand Up @@ -1110,11 +1160,25 @@ _nproc() {

# shellcheck disable=SC2129
ci_export_vars() {
local build_dir="${BUILD_DIR}"

if [[ -n "${GITHUB_ACTIONS-}" ]]; then
# GitHub Actions
echo "BUILD_VERSION=${IMAGE_VERSION}" >> "$GITHUB_ENV"
echo "PATH=$HOME/.cargo/bin:$PATH" >> "$GITHUB_ENV"
echo "CARGO_INCREMENTAL=0" >> "$GITHUB_ENV"

if [[ "${MAKE_DEBUG}" == "1" ]]; then
echo "BUILD_TYPE=debug" >> "$GITHUB_ENV"
else
echo "BUILD_TYPE=release" >> "$GITHUB_ENV"
fi

if [[ "${TARGET}" == "x86_64-w64-mingw32" ]]; then
echo "PKG_TYPE=zip" >> "$GITHUB_ENV"
else
echo "PKG_TYPE=tar.gz" >> "$GITHUB_ENV"
fi
fi
}

Expand All @@ -1123,6 +1187,7 @@ ci_setup_deps() {
DEBIAN_FRONTEND=noninteractive pkg_install_deps
DEBIAN_FRONTEND=noninteractive pkg_setup_locale
DEBIAN_FRONTEND=noninteractive pkg_install_llvm
DEBIAN_FRONTEND=noninteractive pkg_install_gh_cli
ci_setup_deps_target
}

Expand Down Expand Up @@ -1252,4 +1317,4 @@ _exit_dir() {
popd > /dev/null
}

main "$@"
main "$@"

0 comments on commit 937c812

Please sign in to comment.