name: 'Build stable release' permissions: contents: write on: workflow_dispatch: push: tags: - 'v*' jobs: tagged-release: name: 'Build Stable Release' runs-on: ubuntu-latest steps: - name: Install python 3.13 uses: actions/setup-python@v6 with: python-version: '3.13' - name: Install Node.js 24 uses: actions/setup-node@v6 with: node-version: 24 - name: Checkout repository uses: actions/checkout@v6 - name: Enable Corepack run: corepack enable pnpm - name: Get the EMS-ESP version id: build_info run: | version=`grep -E '^#define EMSESP_APP_VERSION' ./src/emsesp_version.h | awk -F'"' '{print $2}'` echo "VERSION=$version" >> $GITHUB_OUTPUT - name: Install PlatformIO run: | python -m pip install --upgrade pip pip install -U platformio python -m pip install intelhex - name: Build webUI run: | platformio run -e build-webUI - name: Build modbus run: | platformio run -e build_modbus - name: Build standalone run: | platformio run -e build_standalone - name: Build all PIO target environments, from default_envs run: | platformio run - name: Create GitHub Release uses: emsesp/action-automatic-releases@v1.0.1 with: repo_token: '${{ secrets.GITHUB_TOKEN }}' prerelease: false files: | CHANGELOG.md ./build/firmware/*.* - name: Update version in Cloudflare KV store env: CF_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }} CF_NAMESPACE_ID: ${{ secrets.CF_NAMESPACE_ID }} CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} VERSION: ${{ steps.build_info.outputs.VERSION }} run: | JSON_DATA=$(jq -n \ --arg version "$VERSION" \ --arg date "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \ '{version: $version, date: $date}') echo "JSON_DATA: $JSON_DATA" curl -sS --fail-with-body \ -X PUT "https://api.cloudflare.com/client/v4/accounts/${CF_ACCOUNT_ID}/storage/kv/namespaces/${CF_NAMESPACE_ID}/values/stable" \ -H "Authorization: Bearer ${CF_API_TOKEN}" \ -H "Content-Type: application/json" \ -d "$JSON_DATA" echo