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 be run if a new tag starting with v is pushed. push: branches: - "!*" tags: - "v1*" jobs: release-build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 with: submodules: 'recursive' # get github branch and tag names as ${{ steps.branch_name.outputs.SOURCE_TAG }} - name: Branch name id: branch_name run: | echo ::set-output name=SOURCE_NAME::${GITHUB_REF#refs/*/} echo ::set-output name=SOURCE_BRANCH::${GITHUB_REF#refs/heads/} echo ::set-output name=SOURCE_TAG::${GITHUB_REF#refs/tags/} - name: Setup Python uses: actions/setup-python@v2 with: python-version: 3.x # 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 - name: Upgrade platformio run: | pio upgrade # Will be available in steps.version.outputs.version - name: Get version string run: echo "::set-output name=version::$(./bin/buildinfo.py)" id: version - 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: ${{ steps.branch_name.outputs.SOURCE_TAG }} # was ${{ github.ref }} body: | Autogenerated by github action, developer should edit as required before publishing... env: GITHUB_TOKEN: ${{ github.token }} - name: Add artifact 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