name: Build binary packages

on:
  workflow_dispatch:
  workflow_call:
  push:
    branches:
        - 'master'
    tags:
        - '*'

jobs:
  build_linux:
    name: Build binary on Ubuntu 20.04
    runs-on: ubuntu-20.04

    steps:
      - name: Check out code from GitHub
        uses: actions/checkout@v2
        with:
          path: nanopb
          fetch-depth: "0"

      - name: Install dependencies
        run: |
          python3 -m pip install --user --upgrade scons protobuf grpcio-tools pyinstaller
          python3 -c 'import google.protobuf; print(google.protobuf.__file__)'

      - name: Build binary package
        run: |
          cd nanopb
          git clean -dxf
          tools/make_linux_package.sh

      - name: Fingerprint binary
        run: |
          openssl sha256 nanopb/dist/*.tar.gz

      - name: Upload binary
        uses: actions/upload-artifact@v2
        with:
          path: nanopb/dist/*.tar.gz
          name: nanopb-binary-linux

      - name: Test binary package
        run: |
          tar xzf nanopb/dist/*.tar.gz
          cd nanopb-*/tests
          python3 -m SCons

      - name: Test examples
        run: |
          cd nanopb-*/examples
          (cd simple; make; ./simple)
          (cd network_server; make)
          (cd using_union_messages; make)
          (cd cmake_simple; mkdir build; cd build; cmake ..; make)
          (cd cmake_relpath; mkdir build; cd build; cmake ..; make)

  build_windows:
    name: Build binary on Windows 2019
    runs-on: windows-2019

    steps:
      - name: Check out code from GitHub
        uses: actions/checkout@v2
        with:
          path: nanopb
          fetch-depth: "0"

      - name: Install dependencies
        shell: bash
        run: |
          python3 -m pip install --user --upgrade scons protobuf grpcio-tools pyinstaller
          python3 -c 'import google.protobuf; print(google.protobuf.__file__)'

      - name: Build binary package
        shell: bash
        run: |
          cd nanopb
          git clean -dxf
          tools/make_windows_package.sh

      - name: Fingerprint binary
        run: |
          openssl sha256 nanopb/dist/*.zip

      - name: Upload binary
        uses: actions/upload-artifact@v2
        with:
          path: nanopb/dist/*.zip
          name: nanopb-binary-windows

      - name: Test binary package
        shell: bash
        run: |
          powershell "Expand-Archive nanopb/dist/*.zip"
          ls
          cd nanopb-*/nanopb-*/tests
          python3 -m SCons

  build_macos:
    name: Build binary on Mac OS X Big Sur 11
    runs-on: macos-11

    steps:
      - name: Check out code from GitHub
        uses: actions/checkout@v2
        with:
          path: nanopb
          fetch-depth: "0"

      - name: Install dependencies
        run: |
          python3 -m pip install --user --upgrade scons protobuf grpcio-tools pyinstaller
          python3 -c 'import google.protobuf; print(google.protobuf.__file__)'

      - name: Build binary package
        run: |
          cd nanopb
          git clean -dxf
          tools/make_mac_package.sh

      - name: Fingerprint binary
        run: |
          openssl sha256 nanopb/dist/*.tar.gz

      - name: Upload binary
        uses: actions/upload-artifact@v2
        with:
          path: nanopb/dist/*.tar.gz
          name: nanopb-binary-macos

      - name: Test binary package
        run: |
          tar xzf nanopb/dist/*.tar.gz
          cd nanopb-*/tests
          python3 -m SCons
          cd ../examples/simple
          make
          ./simple


