name: Ahoy Release for ESP8266 on: push: branches: main paths: - 'src/**' # build only when changes occur here - '.github/workflows/compile_release.yml' - '!README.md' - '!CHANGES.md' - '!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 src --environment esp8266-release --environment esp8285-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: src/CHANGES.md env: GITHUB_TOKEN: ${{ github.token }} - name: Set Version uses: cschleiden/replace-tokens@v1 with: files: 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 src/firmware/* 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