Merge pull request #5 from FairCoinOfficial/release/v3.0.4 #18
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build and Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| jobs: | |
| # ---------- Linux tar.gz ---------- | |
| build-linux: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential libtool autotools-dev autoconf \ | |
| pkg-config bsdmainutils curl python3 | |
| - name: Build depends | |
| run: make -C depends HOST=x86_64-linux-gnu NO_QT=1 -j$(nproc) | |
| - name: Build | |
| run: | | |
| ./autogen.sh | |
| CONFIG_SITE=$PWD/depends/x86_64-linux-gnu/share/config.site ./configure --prefix=/ --without-gui --disable-zmq | |
| make -j$(nproc) | |
| strip src/faircoind src/faircoin-cli src/faircoin-tx | |
| - name: Package tar.gz | |
| run: | | |
| mkdir -p faircoin-${{ github.ref_name }}-linux-x86_64 | |
| cp src/faircoind src/faircoin-cli src/faircoin-tx faircoin-${{ github.ref_name }}-linux-x86_64/ | |
| cp COPYING README.md doc/GENERATE-KEYS.md faircoin-${{ github.ref_name }}-linux-x86_64/ | |
| tar czf faircoin-${{ github.ref_name }}-linux-x86_64.tar.gz faircoin-${{ github.ref_name }}-linux-x86_64/ | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: linux-tarball | |
| path: faircoin-${{ github.ref_name }}-linux-x86_64.tar.gz | |
| # ---------- Debian .deb package ---------- | |
| build-deb: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential libtool autotools-dev autoconf \ | |
| pkg-config bsdmainutils curl python3 \ | |
| dpkg-dev fakeroot | |
| - name: Build depends | |
| run: make -C depends HOST=x86_64-linux-gnu NO_QT=1 -j$(nproc) | |
| - name: Build | |
| run: | | |
| ./autogen.sh | |
| CONFIG_SITE=$PWD/depends/x86_64-linux-gnu/share/config.site ./configure --prefix=/ --without-gui --disable-zmq | |
| make -j$(nproc) | |
| strip src/faircoind src/faircoin-cli src/faircoin-tx | |
| - name: Create .deb package | |
| run: | | |
| VERSION="${GITHUB_REF_NAME#v}" | |
| PKG="faircoin_${VERSION}_amd64" | |
| mkdir -p $PKG/DEBIAN $PKG/usr/bin $PKG/usr/share/doc/faircoin | |
| # Binaries | |
| cp src/faircoind src/faircoin-cli src/faircoin-tx $PKG/usr/bin/ | |
| # Docs | |
| cp COPYING README.md doc/GENERATE-KEYS.md $PKG/usr/share/doc/faircoin/ | |
| # Control file (statically linked — only libc6 needed) | |
| cat > $PKG/DEBIAN/control <<EOF | |
| Package: faircoin | |
| Version: ${VERSION} | |
| Section: net | |
| Priority: optional | |
| Architecture: amd64 | |
| Depends: libc6 | |
| Maintainer: FairCoin Official <contact@fairco.in> | |
| Description: FairCoin cryptocurrency daemon and CLI | |
| FairCoin is a cryptocurrency with masternodes, coin mixing, | |
| and hybrid PoW/PoS consensus. This package provides the | |
| faircoind daemon and faircoin-cli/faircoin-tx tools. | |
| Homepage: https://fairco.in | |
| EOF | |
| dpkg-deb --build --root-owner-group $PKG | |
| ls -la $PKG.deb | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: linux-deb | |
| path: faircoin_*_amd64.deb | |
| # ---------- Windows .exe (cross-compile) ---------- | |
| build-windows: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install cross-compile dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential libtool autotools-dev autoconf \ | |
| pkg-config bsdmainutils curl python3 \ | |
| g++-mingw-w64-x86-64 mingw-w64-x86-64-dev \ | |
| nsis | |
| sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix | |
| sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix | |
| - name: Build depends for Windows | |
| run: | | |
| cd depends | |
| make HOST=x86_64-w64-mingw32 -j$(nproc) | |
| - name: Build FairCoin for Windows | |
| run: | | |
| ./autogen.sh | |
| CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/ --disable-zmq | |
| make -j$(nproc) | |
| x86_64-w64-mingw32-strip src/faircoind.exe src/faircoin-cli.exe src/faircoin-tx.exe src/qt/faircoin-qt.exe | |
| - name: Package Windows ZIP | |
| run: | | |
| mkdir -p faircoin-${{ github.ref_name }}-windows-x86_64 | |
| cp src/faircoind.exe src/faircoin-cli.exe src/faircoin-tx.exe src/qt/faircoin-qt.exe faircoin-${{ github.ref_name }}-windows-x86_64/ | |
| cp COPYING README.md doc/GENERATE-KEYS.md faircoin-${{ github.ref_name }}-windows-x86_64/ | |
| zip -r faircoin-${{ github.ref_name }}-windows-x86_64.zip faircoin-${{ github.ref_name }}-windows-x86_64/ | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows-zip | |
| path: faircoin-${{ github.ref_name }}-windows-x86_64.zip | |
| # ---------- macOS (native build) ---------- | |
| build-macos: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| brew install automake libtool pkg-config openssl@3 boost berkeley-db@4 miniupnpc libevent | |
| brew link --force berkeley-db@4 | |
| - name: Build | |
| run: | | |
| export LDFLAGS="-L$(brew --prefix boost)/lib -L$(brew --prefix openssl@3)/lib -L$(brew --prefix berkeley-db@4)/lib -L$(brew --prefix miniupnpc)/lib -L$(brew --prefix libevent)/lib" | |
| export CPPFLAGS="-I$(brew --prefix boost)/include -I$(brew --prefix openssl@3)/include -I$(brew --prefix berkeley-db@4)/include -I$(brew --prefix miniupnpc)/include -I$(brew --prefix libevent)/include" | |
| export PKG_CONFIG_PATH="$(brew --prefix openssl@3)/lib/pkgconfig:$(brew --prefix libevent)/lib/pkgconfig" | |
| ./autogen.sh | |
| ./configure --without-gui --with-incompatible-bdb --disable-zmq \ | |
| --with-boost=$(brew --prefix boost) | |
| make -j$(sysctl -n hw.ncpu) | |
| strip src/faircoind src/faircoin-cli src/faircoin-tx | |
| - name: Package macOS | |
| run: | | |
| ARCH=$(uname -m) | |
| mkdir -p faircoin-${{ github.ref_name }}-macos-${ARCH} | |
| cp src/faircoind src/faircoin-cli src/faircoin-tx faircoin-${{ github.ref_name }}-macos-${ARCH}/ | |
| cp COPYING README.md doc/GENERATE-KEYS.md faircoin-${{ github.ref_name }}-macos-${ARCH}/ | |
| tar czf faircoin-${{ github.ref_name }}-macos-${ARCH}.tar.gz faircoin-${{ github.ref_name }}-macos-${ARCH}/ | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: macos-tarball | |
| path: faircoin-${{ github.ref_name }}-macos-*.tar.gz | |
| # ---------- Create GitHub Release ---------- | |
| create-release: | |
| needs: [build-linux, build-deb, build-windows, build-macos] | |
| if: always() | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: artifacts | |
| - name: List artifacts | |
| run: find artifacts -type f || echo "No artifacts found" | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| name: FairCoin ${{ github.ref_name }} | |
| draft: false | |
| prerelease: false | |
| generate_release_notes: true | |
| fail_on_unmatched_files: false | |
| files: | | |
| artifacts/linux-tarball/*.tar.gz | |
| artifacts/linux-deb/*.deb | |
| artifacts/windows-zip/*.zip | |
| artifacts/macos-tarball/*.tar.gz |