diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b8cb034d1268d84bfee7e7a6bf52f821e885d0a4..3dd9f8f8eae028c09154036cc69128bfa72af15e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -58,6 +58,16 @@ skip_ci: - rustup show - rustc --version && cargo --version +.rust_stable_lin64_arch: + extends: .ci_conditions + image: registry.duniter.org/docker/rust/arch-builder:latest + tags: + - redshift-docker-runner + before_script: + - export PATH="$HOME/.cargo/bin:$PATH" + - rustup show + - rustc --version && cargo --version + .rust_stable_armv7: extends: .ci_conditions image: registry.duniter.org/docker/rust/armv7-builder:latest @@ -163,7 +173,7 @@ publish:crate: - cargo login $DUNITER_CRATES_TOKEN - cargo publish -package:test:linux64: +package:test:lin64:deb: extends: .rust_stable_lin64 stage: package when: manual @@ -171,7 +181,22 @@ package:test:linux64: refs: - tags script: - - bash "release/arch/linux-x64/build-lin-x64.sh" "$(date +%Y%m%d).$(date +%H%M).$(date +%S)" + - bash "release/arch/linux-x64/build-deb.sh" "$(date +%Y%m%d).$(date +%H%M).$(date +%S)" + artifacts: + paths: + - work/bin/ + expire_in: 1 weeks + +package:test:lin64:arch: + extends: .rust_stable_lin64_arch + stage: package + when: manual + except: + refs: + - tags + script: + - sudo chown -R builduser /builds/nodes/rust/duniter-rs/bin/dunitrust-server/src + - sudo -u builduser -n bash "release/arch/linux-x64/build-arch.sh" "$(date +%Y%m%d).$(date +%H%M).$(date +%S)" artifacts: paths: - work/bin/ @@ -258,6 +283,33 @@ package:prod:linux64: - work/bin/ expire_in: 2 weeks +package:prod:lin64:deb: + extends: .rust_stable_lin64 + stage: package + when: manual + only: + - tags + script: + - bash "release/arch/linux-x64/build-deb.sh" "${CI_COMMIT_TAG#v}" + artifacts: + paths: + - work/bin/ + expire_in: 2 weeks + +package:prod:lin64:arch: + extends: .rust_stable_lin64_arch + stage: package + when: manual + only: + - tags + script: + - sudo chown -R builduser /builds/nodes/rust/duniter-rs/bin/dunitrust-server/src + - sudo -u builduser -n bash "release/arch/linux-x64/build-arch.sh" "${CI_COMMIT_TAG#v}" + artifacts: + paths: + - work/bin/ + expire_in: 2 weeks + package:prod:docker: stage: package only: diff --git a/bin/dunitrust-server/Cargo.toml b/bin/dunitrust-server/Cargo.toml index 019b659eca3d123427e2769748277a524adbe050..0049af47dea273aa313973387c861cb084cdd7ae 100644 --- a/bin/dunitrust-server/Cargo.toml +++ b/bin/dunitrust-server/Cargo.toml @@ -51,4 +51,7 @@ assets = [ ["../../target/armv7-unknown-linux-gnueabihf/release/dunitrust", "usr/bin/", "755"], ["../../images/duniter-rs.png", "usr/share/dunitrust/", "644"], ] -features = ["ssl"] \ No newline at end of file +features = ["ssl"] + +[package.metadata.arch] +arch = ["x86_64"] \ No newline at end of file diff --git a/release/arch/linux-x64/build-arch.sh b/release/arch/linux-x64/build-arch.sh new file mode 100644 index 0000000000000000000000000000000000000000..326d139f8600cd498d78b6eff194169d969555ce --- /dev/null +++ b/release/arch/linux-x64/build-arch.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +# ------------- +# Check params +# ------------- + +if [[ -z "${1}" ]]; then + echo "Fatal: no version given to build script" + exit 1 +fi + +# ----------- +# Constants +# ----------- + +DURS_TAG="v${1}" +DURS_DEB_VER=" ${1}" + +ROOT="${PWD}" +WORK_NAME=work +WORK="${ROOT}/${WORK_NAME}" +RELEASES="${WORK}/releases" +BIN="${WORK}/bin" + +# --------- +# Functions +# --------- + +# Create description. +# - +# Parameters: +# 1. Initial file name. +# 2. Building type (either “desktop” or “server”). +# 3. Category (OS, distribution). +create_desc() { + cat >"${1}".desc <<-EOF + { + "version": "${DURS_TAG}", + "job": "${CI_JOB_ID}", + "type": "${2^}", + "category": "${3}", + "arch": "x64" + } + EOF +} + +# ArchLinux package building. +# - +# Parameters: +# 1. Building type (either “desktop” or “server”). +build_arch_pack() { + cd "${ROOT}/bin/dunitrust-${1}" + cargo-arch arch --manifest-path "${ROOT}/bin/dunitrust-${1}" + mv dunitrust-*.pkg.tar.xz "${BIN}/dunitrust-${1}-${DURS_TAG}-archlinux-x64.pkg.tar.xz" + cd "${ROOT}" + create_desc "${BIN}/dunitrust-${1}-${DURS_TAG}-archlinux-x64.pkg.tar.xz" "${1}" "Linux (ArchLinux)" +} + +# ------------ +# BEGIN SCRIPT +# ------------ + +# Prepare +mkdir -p "${RELEASES}" "${BIN}" || exit 1 +#rustup add target ${TARGET} || exit 1 + +# Clean up +rm -rf "${BIN}/"*.pkg.tar.xz{,.desc} + +# --------------------- +# Build ArchLinux packages +# --------------------- + +build_arch_pack server diff --git a/release/arch/linux-x64/build-lin-x64.sh b/release/arch/linux-x64/build-deb.sh similarity index 99% rename from release/arch/linux-x64/build-lin-x64.sh rename to release/arch/linux-x64/build-deb.sh index a1d32649ad10557593d4f60973098eaf80d64552..f23aa062628b30c8756d768d0c86a79666531314 100644 --- a/release/arch/linux-x64/build-lin-x64.sh +++ b/release/arch/linux-x64/build-deb.sh @@ -63,7 +63,7 @@ build_deb_pack() { } # ------------ -# BEGIn SCRIPT +# BEGIN SCRIPT # ------------ # Prepare