name: CI on: [push, pull_request] jobs: build-ubuntu: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Set environment variables id: vars run: | echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" - name: Dependency packages (apt) run: | sudo apt update sudo apt -y install git gcc-arm-none-eabi python3-pip srecord stm32flash zip - name: Dependency packages (pip) run: python3 -m pip install --user bitarray crcmod pyserial - name: Build dist run: | export VER=${{ steps.vars.outputs.sha_short }} make dist mkdir -p _cidist rm Greaseweazle-v*.zip mv Greaseweazle-v* Greaseweazle-$VER rm Greaseweazle-$VER/RELEASE_NOTES git rev-parse HEAD >Greaseweazle-$VER/COMMIT echo "commit = '$(git rev-parse HEAD)'" >>Greaseweazle-$VER/scripts/greaseweazle/version.py zip -r Greaseweazle-$VER.zip Greaseweazle-$VER mv Greaseweazle-$VER.zip _cidist/ - name: Build debug dist run: | export VER=${{ steps.vars.outputs.sha_short }}-debug env debug=y make dist rm Greaseweazle-v*.zip mv Greaseweazle-v* Greaseweazle-$VER rm Greaseweazle-$VER/RELEASE_NOTES git rev-parse HEAD >Greaseweazle-$VER/COMMIT echo debug >>Greaseweazle-$VER/COMMIT echo "commit = '$(git rev-parse HEAD)'" >>Greaseweazle-$VER/scripts/greaseweazle/version.py zip -r Greaseweazle-$VER.zip Greaseweazle-$VER mv Greaseweazle-$VER.zip _cidist/ - name: Upload artifacts uses: actions/upload-artifact@v2 with: name: Greaseweazle.CI.${{ steps.vars.outputs.sha_short }} path: _cidist build-windows: needs: build-ubuntu runs-on: windows-2019 steps: - uses: actions/checkout@v2 - name: Set environment variables id: vars run: | echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" - name: Download Ubuntu build uses: actions/download-artifact@v2 with: name: Greaseweazle.CI.${{ steps.vars.outputs.sha_short }} - name: Set up Python uses: actions/setup-python@v2 with: python-version: 3.8 architecture: x86 - name: Dependency packages (pip) run: | python -m pip install --upgrade pip setuptools wheel python -m pip install --user bitarray crcmod pyserial cx_Freeze - name: Build dist run: | make windist VER=${{ steps.vars.outputs.sha_short }} - name: Upload artifacts uses: actions/upload-artifact@v2 with: name: Greaseweazle.CI.${{ steps.vars.outputs.sha_short }} path: Greaseweazle-${{ steps.vars.outputs.sha_short }}-win.zip finalise: needs: build-windows runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Set environment variables id: vars run: | echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" - name: Download artifacts uses: actions/download-artifact@v2 with: name: Greaseweazle.CI.${{ steps.vars.outputs.sha_short }} - name: Remove 64-bit DLLS run: | export VER=${{ steps.vars.outputs.sha_short }} unzip Greaseweazle-$VER-win.zip find . -name 'api-ms-win-crt-*' | xargs rm find Greaseweazle-$VER/lib -name 'python*.dll' | xargs rm find Greaseweazle-$VER/lib -name 'vcruntime140.dll' | xargs rm rm Greaseweazle-$VER-win.zip zip -r Greaseweazle-$VER-win.zip Greaseweazle-$VER - name: Upload finalised artifacts uses: actions/upload-artifact@v2 with: name: Greaseweazle.CI.${{ steps.vars.outputs.sha_short }} path: Greaseweazle-${{ steps.vars.outputs.sha_short }}-win.zip