anypay 0.1.0

AnyPay is a payment processing platform that allows you to accept payments from multiple cryptocurrencies and fiat currencies.
Documentation
name: Build and Release

on:
  push:
    tags:
      - 'v*'

jobs:
  build-linux-x86:
    runs-on: ubuntu-22.04
    
    steps:
    - uses: actions/checkout@v3

    - name: Install Rust
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        target: x86_64-unknown-linux-gnu
        override: true

    - name: Build
      run: |
        cargo build --release --target x86_64-unknown-linux-gnu
        # Create archives for both binaries
        tar -czf anypay-server-linux-x86_64.tar.gz -C target/x86_64-unknown-linux-gnu/release anypay-server
        tar -czf anypay-client-linux-x86_64.tar.gz -C target/x86_64-unknown-linux-gnu/release anypay-client

    - name: Create Release
      uses: softprops/action-gh-release@v1
      if: startsWith(github.ref, 'refs/tags/')
      with:
        files: |
          anypay-server-linux-x86_64.tar.gz
          anypay-client-linux-x86_64.tar.gz
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

  build-linux-aarch64:
    runs-on: ubuntu-22.04
    
    steps:
    - uses: actions/checkout@v3

    - name: Install Rust
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        target: aarch64-unknown-linux-gnu
        override: true

    - name: Install ARM64 toolchain
      run: |
        sudo dpkg --add-architecture arm64
        sudo apt-get update
        sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
        sudo apt-get install -y libssl-dev:arm64 pkg-config
        echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
        echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
        echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV
        echo "PKG_CONFIG_SYSROOT_DIR=/usr/lib/aarch64-linux-gnu" >> $GITHUB_ENV
        echo "PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig" >> $GITHUB_ENV
        echo "OPENSSL_DIR=/usr/lib/aarch64-linux-gnu" >> $GITHUB_ENV
        echo "OPENSSL_INCLUDE_DIR=/usr/include/aarch64-linux-gnu" >> $GITHUB_ENV

    - name: Build
      run: |
        cargo build --release --target aarch64-unknown-linux-gnu
        # Create archives for both binaries
        tar -czf anypay-server-linux-aarch64.tar.gz -C target/aarch64-unknown-linux-gnu/release anypay-server
        tar -czf anypay-client-linux-aarch64.tar.gz -C target/aarch64-unknown-linux-gnu/release anypay-client

    - name: Create Release
      uses: softprops/action-gh-release@v1
      if: startsWith(github.ref, 'refs/tags/')
      with:
        files: |
          anypay-server-linux-aarch64.tar.gz
          anypay-client-linux-aarch64.tar.gz
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

  build-macos:
    runs-on: macos-latest
    
    steps:
    - uses: actions/checkout@v3

    - name: Install Rust
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        target: x86_64-apple-darwin
        override: true

    - name: Build
      run: |
        cargo build --release
        # Create archives for both binaries
        tar -czf anypay-server-macos-x86_64.tar.gz -C target/release anypay-server
        tar -czf anypay-client-macos-x86_64.tar.gz -C target/release anypay-client

    - name: Create Release
      uses: softprops/action-gh-release@v1
      if: startsWith(github.ref, 'refs/tags/')
      with:
        files: |
          anypay-server-macos-x86_64.tar.gz
          anypay-client-macos-x86_64.tar.gz
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}