name: Make Release on: # Can optionally take parameters from the github UI, more info here https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/#:~:text=You%20can%20now%20create%20workflows,the%20workflow%20is%20run%20on. workflow_dispatch: # inputs: # Only want to run if version.properties is bumped in master push: branches: - master paths: - "version.properties" jobs: release-build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 with: submodules: "recursive" - name: Setup Python uses: actions/setup-python@v2 with: python-version: 3.x # Will be available in steps.version.outputs.version - name: Get release version string run: echo "::set-output name=version::$(./bin/buildinfo.py long)" id: version # Note: we don't use caches on release builds because we don't want to accidentally not have a virgin build machine - name: Upgrade python tools # We actually want to run this every time # if: steps.cache-pip.outputs.cache-hit != 'true' run: | python -m pip install --upgrade pip pip install -U platformio meshtastic adafruit-nrfutil littlefs-python - name: Upgrade platformio run: | pio upgrade - name: Pull web ui uses: dsaltares/fetch-gh-release-asset@master with: repo: "meshtastic/meshtastic-web" file: "build.tar" target: "build.tar" token: ${{ secrets.GITHUB_TOKEN }} - name: Unpack web ui run: | tar -xf build.tar -C data/static rm build.tar - name: Build everything run: bin/build-all.sh - name: Create release uses: actions/create-release@v1 id: create_release with: draft: true prerelease: true release_name: ${{ steps.version.outputs.version }} alpha tag_name: v${{ steps.version.outputs.version }} body: | Autogenerated by github action, developer should edit as required before publishing... env: GITHUB_TOKEN: ${{ github.token }} - name: Add bins to release uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: release/archive/firmware-${{ steps.version.outputs.version }}.zip asset_name: firmware-${{ steps.version.outputs.version }}.zip asset_content_type: application/zip - name: Add debug elfs to release uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: release/archive/elfs-${{ steps.version.outputs.version }}.zip asset_name: debug-elfs-${{ steps.version.outputs.version }}.zip asset_content_type: application/zip