name: Ahoy Release for ESP8266 on: push: branches: main paths: - 'tools/esp8266/**' # build only when changes occur here - '!tools/esp8266/README.md' - '!tools/esp8266/CHANGES.md' - '!tools/esp8266/User_Manual.md' jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: ref: main - uses: benjlevesque/short-sha@v2.1 id: short-sha with: length: 7 - name: Cache Pip uses: actions/cache@v3 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Cache PlatformIO uses: actions/cache@v3 with: path: ~/.platformio key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - name: Setup Python uses: actions/setup-python@v4.3.0 with: python-version: "3.x" - name: Install PlatformIO run: | python -m pip install --upgrade pip pip install --upgrade platformio - name: Convert HTML files working-directory: src/web/html run: python convert.py - name: Run PlatformIO run: pio run -d tools/esp8266 --environment esp8266-release --environment esp8266-1m-release --environment esp32-wroom32-release - name: Rename Binary files id: rename-binary-files working-directory: src run: python ../scripts/getVersion.py >> $GITHUB_OUTPUT - name: Create Release id: create-release uses: actions/create-release@v1 with: draft: false prerelease: false release_name: ${{ steps.rename-binary-files.outputs.name }} tag_name: ${{ steps.rename-binary-files.outputs.name }} body_path: tools/esp8266/CHANGES.md env: GITHUB_TOKEN: ${{ github.token }} - name: set-version uses: cschleiden/replace-tokens@v1 with: files: tools/esp8266/User_Manual.md env: VERSION: ${{ steps.rename-binary-files.outputs.name }} - name: create-artifact run: zip --junk-paths ${{ steps.rename-binary-files.outputs.name }}.zip tools/esp8266/.pio/build/out/* tools/esp8266/User_Manual.md - name: Upload Release id: upload-release uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create-release.outputs.upload_url }} asset_path: ./${{ steps.rename-binary-files.outputs.name }}.zip asset_name: ${{ steps.rename-binary-files.outputs.name }}.zip asset_content_type: application/zip