Skip to content

List upcoming component changes #55

List upcoming component changes

List upcoming component changes #55

# Simple workflow for deploying static content to GitHub Pages
name: List upcoming component changes
# yamllint disable-line rule:truthy
on:
schedule:
# Run twice a day
- cron: '11 5,17 * * *'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
# Single deploy job since we're just deploying
create-component-list:
runs-on: ubuntu-latest
steps:
- name: Check out release branch from GitHub
uses: actions/[email protected]
with:
repository: esphome/esphome
ref: release
fetch-depth: 500
- name: Find changed components
run: |
git fetch origin dev
git fetch origin release
git fetch origin beta
git switch release
release_version=`grep '^__version__ ' esphome/const.py | sed 's/.*"\([^"]*\)"/\1/'`
git switch dev
dev_version=`grep '^__version__ ' esphome/const.py | sed 's/.*"\([^"]*\)"/\1/'`
git switch beta
beta_version=`grep '^__version__ ' esphome/const.py | sed 's/.*"\([^"]*\)"/\1/'`
mkdir -p publish_data
( echo '{ "changed_components": {'
echo '"dev": [ '
git diff origin/dev origin/release --name-only | grep esphome/components | sed 's#esphome/components/##' | sed 's#/.*$##' | sort -u | sed 's/.*/"&"/' | sed '$!s/$/,/'
echo "],"
echo '"beta": ['
git diff origin/beta origin/release --name-only | grep esphome/components | sed 's#esphome/components/##' | sed 's#/.*$##' | sort -u | sed 's/.*/"&"/' | sed '$!s/$/,/'
echo "]},"
now=`date -Iminutes`
echo '"last_updated":' \"$now\",
echo '"release_version":' \"$release_version\",
echo '"beta_version":' \"$beta_version\",
echo '"dev_version":' \"$dev_version\"
echo "}"
) >publish_data/changed_components.json
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload files
path: 'publish_data'
publish-component-list:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: create-component-list
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4