From cefbd73c13c8b69ad8e01b7dd75aea3788a7dc8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Daoust?= Date: Thu, 1 Aug 2024 19:22:19 +0200 Subject: [PATCH] Enable auto-publication (#553) This automates the publication of all 9 EME documents to the `gh-pages` branch and to /TR, using the w3c/spec-prod action. In particular, this adds an auto-publish workflow template and a companion script to generate auto-publish workflows for each and every spec in the repository that only run when needed, meaning only when the spec source did change. The script only needs to run once in a while when new specs get added or when the workflows need to change. Script and template are in the `.github` folder to avoid polluting the repo with build tools. The `W3CTRMANIFEST` files are no longer needed as a result and nothing needs to be Git-ignored anymore either. Also note the change of shortname for Encrypted Media Extensions to `encrypted-media-2`. --- .github/auto-publish-template.yml | 47 ++++++ .github/generate-auto-publish-workflows.mjs | 135 ++++++++++++++++++ ...auto-publish-eme-hdcp-version-registry.yml | 48 +++++++ .../auto-publish-eme-initdata-cenc.yml | 48 +++++++ .../auto-publish-eme-initdata-keyids.yml | 48 +++++++ .../auto-publish-eme-initdata-registry.yml | 48 +++++++ .../auto-publish-eme-initdata-webm.yml | 48 +++++++ .../workflows/auto-publish-eme-stream-mp4.yml | 48 +++++++ .../auto-publish-eme-stream-registry.yml | 48 +++++++ .../auto-publish-eme-stream-webm.yml | 48 +++++++ .../auto-publish-encrypted-media.yml | 52 +++++++ .github/workflows/generate-respec-html.yml | 48 ------- .gitignore | 12 -- TEAM.md | 3 +- W3CTRMANIFEST | 3 - encrypted-media-respec.html | 4 +- format-registry/initdata/cenc-W3CTRMANIFEST | 1 - format-registry/initdata/keyids-W3CTRMANIFEST | 1 - .../initdata/registry-W3CTRMANIFEST | 1 - format-registry/initdata/webm-W3CTRMANIFEST | 1 - format-registry/stream/mp4-W3CTRMANIFEST | 1 - format-registry/stream/registry-W3CTRMANIFEST | 1 - format-registry/stream/webm-W3CTRMANIFEST | 1 - 23 files changed, 621 insertions(+), 74 deletions(-) create mode 100644 .github/auto-publish-template.yml create mode 100644 .github/generate-auto-publish-workflows.mjs create mode 100644 .github/workflows/auto-publish-eme-hdcp-version-registry.yml create mode 100644 .github/workflows/auto-publish-eme-initdata-cenc.yml create mode 100644 .github/workflows/auto-publish-eme-initdata-keyids.yml create mode 100644 .github/workflows/auto-publish-eme-initdata-registry.yml create mode 100644 .github/workflows/auto-publish-eme-initdata-webm.yml create mode 100644 .github/workflows/auto-publish-eme-stream-mp4.yml create mode 100644 .github/workflows/auto-publish-eme-stream-registry.yml create mode 100644 .github/workflows/auto-publish-eme-stream-webm.yml create mode 100644 .github/workflows/auto-publish-encrypted-media.yml delete mode 100644 .github/workflows/generate-respec-html.yml delete mode 100644 .gitignore delete mode 100644 W3CTRMANIFEST delete mode 100644 format-registry/initdata/cenc-W3CTRMANIFEST delete mode 100644 format-registry/initdata/keyids-W3CTRMANIFEST delete mode 100644 format-registry/initdata/registry-W3CTRMANIFEST delete mode 100644 format-registry/initdata/webm-W3CTRMANIFEST delete mode 100644 format-registry/stream/mp4-W3CTRMANIFEST delete mode 100644 format-registry/stream/registry-W3CTRMANIFEST delete mode 100644 format-registry/stream/webm-W3CTRMANIFEST diff --git a/.github/auto-publish-template.yml b/.github/auto-publish-template.yml new file mode 100644 index 00000000..ff8f2999 --- /dev/null +++ b/.github/auto-publish-template.yml @@ -0,0 +1,47 @@ +###################################################################### +# This is the template used to generate auto-publication workflows for +# the different documents in the repository. Check generate script for +# details. Edit this file and run the script again to update the +# workflows. +###################################################################### + +name: Auto publish {{shortname}} + +on: + # Worflow runs on pull requests where it makes sure that the spec can still be + # generated, that markup is valid and that there are no broken links, as + # well as on pushes to the default branch where it also deploys the generated + # spec to the gh-pages branch and publishes the result to /TR. + # The "workflow_dispatch" hook allows admins to also trigger the workflow + # manually from GitHub's UI. + pull_request: + paths: + - '{{source}}'{{additionalPaths}} + push: + branches: [main] + paths: + - '{{source}}'{{additionalPaths}} + workflow_dispatch: + +jobs: + main: + runs-on: ubuntu-latest + steps: + # See doc at https://github.com/actions/checkout#checkout-v2 + - name: Checkout repository + uses: actions/checkout@v4 + + # See doc at https://w3c.github.io/spec-prod/ + # The action only deploys the generated spec to the gh-pages branch when + # the workflow was triggered by a push to the default branch. + - name: Build and validate spec, push to gh-pages branch and deploy to /TR if needed + uses: w3c/spec-prod@v2 + with: + TOOLCHAIN: respec + SOURCE: {{source}} + DESTINATION: {{destination}} + GH_PAGES_BRANCH: gh-pages + W3C_ECHIDNA_TOKEN: ${{ secrets.{{tokenName}} }} + W3C_WG_DECISION_URL: https://github.com/w3c/media-wg/issues/27 + W3C_BUILD_OVERRIDE: | + specStatus: {{publicationStatus}} diff --git a/.github/generate-auto-publish-workflows.mjs b/.github/generate-auto-publish-workflows.mjs new file mode 100644 index 00000000..9979db0a --- /dev/null +++ b/.github/generate-auto-publish-workflows.mjs @@ -0,0 +1,135 @@ +/********************************************************************** + * Companion script to create individual auto publication workflows for + * specifications contained in the repository. Run the script any time + * the auto-publish-template.yml is updated or when the list of specs + * changes below. + **********************************************************************/ + +/** + * List of properties that can appear to describe a spec. + */ +const properties = [ + // Spec shortname (without level), e.g., 'encrypted-media' + 'shortname', + + // Spec status on /TR, e.g., 'WD' + 'publicationStatus', + + // Relative path to source file + 'source', + + // Relative path to destination file in gh-pages branch (Optional) + // If not provided, the destination file is computed from the source by + // removing `-respec`. + 'destination', + + // Name of the repository secret that contains the publication token for + // Echidna (Optional). + // If not provided, the name is computed from the shortname, e.g., + // `ECHIDNA_TOKEN_ENCRYPTED_MEDIA` for `encrypted-media-2` (note the level + // is stripped) + 'tokenName', + + // Additional paths that should trigger the auto-publish script if changed + // on top of the actual source. Glob patterns may be used. + 'additionalPaths' +]; + + +/** + * List of specs for which an auto-publish script needs to be created. + */ +const specs = [ + { + shortname: 'encrypted-media', + source: 'encrypted-media-respec.html', + destination: 'index.html', + publicationStatus: 'WD', + additionalPaths: [ + '*.css', + '*.svg' + ] + }, + { + shortname: 'eme-hdcp-version-registry', + source: 'hdcp-version-registry-respec.html', + publicationStatus: 'DRY' + }, + { + shortname: 'eme-initdata-registry', + source: 'format-registry/initdata/index-respec.html', + publicationStatus: 'DRY' + }, + { + shortname: 'eme-initdata-cenc', + source: 'format-registry/initdata/cenc-respec.html', + publicationStatus: 'NOTE' + }, + { + shortname: 'eme-initdata-keyids', + source: 'format-registry/initdata/keyids-respec.html', + publicationStatus: 'NOTE' + }, + { + shortname: 'eme-initdata-webm', + source: 'format-registry/initdata/webm-respec.html', + publicationStatus: 'NOTE' + }, + + { + shortname: 'eme-stream-registry', + source: 'format-registry/stream/index-respec.html', + publicationStatus: 'DRY' + }, + { + shortname: 'eme-stream-mp4', + source: 'format-registry/stream/mp4-respec.html', + publicationStatus: 'NOTE' + }, + { + shortname: 'eme-stream-webm', + source: 'format-registry/stream/webm-respec.html', + publicationStatus: 'NOTE' + } +]; + + +/** + * Main loop, create a workflow per spec + */ +import assert from 'node:assert'; +import { readFile, writeFile } from 'node:fs/promises'; +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const scriptPath = dirname(fileURLToPath(import.meta.url)); +let template = await readFile(join(scriptPath, 'auto-publish-template.yml'), 'utf8'); +template = template.replace(/#{5,}.*#{5,}/s, +`###################################################################### +# IMPORTANT: Do not edit this file directly! +# +# This workflow was automatically generated through the +# generate-auto-publish-workflows.mjs script. To update the workflow, +# make changes to the template file and run the script again. +######################################################################`); + +for (const spec of specs) { + if (!spec.destination) { + spec.destination = spec.source.replace(/-respec/, ''); + } + if (!spec.tokenName) { + spec.tokenName = 'ECHIDNA_TOKEN_' + + spec.shortname.toUpperCase().replace(/-/g, '_'); + } + if (spec.additionalPaths) { + spec.additionalPaths = spec.additionalPaths.map(path => `\n - '${path}'`).join(''); + } + + let content = template; + for (const prop of properties) { + content = content.replace(new RegExp('{{' + prop + '}}', 'g'), spec[prop] ?? ''); + } + + const filename = join(scriptPath, 'workflows', `auto-publish-${spec.shortname}.yml`); + await writeFile(filename, content, 'utf8'); +} diff --git a/.github/workflows/auto-publish-eme-hdcp-version-registry.yml b/.github/workflows/auto-publish-eme-hdcp-version-registry.yml new file mode 100644 index 00000000..9b757494 --- /dev/null +++ b/.github/workflows/auto-publish-eme-hdcp-version-registry.yml @@ -0,0 +1,48 @@ +###################################################################### +# IMPORTANT: Do not edit this file directly! +# +# This workflow was automatically generated through the +# generate-auto-publish-workflows.mjs script. To update the workflow, +# make changes to the template file and run the script again. +###################################################################### + +name: Auto publish eme-hdcp-version-registry + +on: + # Worflow runs on pull requests where it makes sure that the spec can still be + # generated, that markup is valid and that there are no broken links, as + # well as on pushes to the default branch where it also deploys the generated + # spec to the gh-pages branch and publishes the result to /TR. + # The "workflow_dispatch" hook allows admins to also trigger the workflow + # manually from GitHub's UI. + pull_request: + paths: + - 'hdcp-version-registry-respec.html' + push: + branches: [main] + paths: + - 'hdcp-version-registry-respec.html' + workflow_dispatch: + +jobs: + main: + runs-on: ubuntu-latest + steps: + # See doc at https://github.com/actions/checkout#checkout-v2 + - name: Checkout repository + uses: actions/checkout@v4 + + # See doc at https://w3c.github.io/spec-prod/ + # The action only deploys the generated spec to the gh-pages branch when + # the workflow was triggered by a push to the default branch. + - name: Build and validate spec, push to gh-pages branch and deploy to /TR if needed + uses: w3c/spec-prod@v2 + with: + TOOLCHAIN: respec + SOURCE: hdcp-version-registry-respec.html + DESTINATION: hdcp-version-registry.html + GH_PAGES_BRANCH: gh-pages + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_EME_HDCP_VERSION_REGISTRY }} + W3C_WG_DECISION_URL: https://github.com/w3c/media-wg/issues/27 + W3C_BUILD_OVERRIDE: | + specStatus: DRY diff --git a/.github/workflows/auto-publish-eme-initdata-cenc.yml b/.github/workflows/auto-publish-eme-initdata-cenc.yml new file mode 100644 index 00000000..d91bb44a --- /dev/null +++ b/.github/workflows/auto-publish-eme-initdata-cenc.yml @@ -0,0 +1,48 @@ +###################################################################### +# IMPORTANT: Do not edit this file directly! +# +# This workflow was automatically generated through the +# generate-auto-publish-workflows.mjs script. To update the workflow, +# make changes to the template file and run the script again. +###################################################################### + +name: Auto publish eme-initdata-cenc + +on: + # Worflow runs on pull requests where it makes sure that the spec can still be + # generated, that markup is valid and that there are no broken links, as + # well as on pushes to the default branch where it also deploys the generated + # spec to the gh-pages branch and publishes the result to /TR. + # The "workflow_dispatch" hook allows admins to also trigger the workflow + # manually from GitHub's UI. + pull_request: + paths: + - 'format-registry/initdata/cenc-respec.html' + push: + branches: [main] + paths: + - 'format-registry/initdata/cenc-respec.html' + workflow_dispatch: + +jobs: + main: + runs-on: ubuntu-latest + steps: + # See doc at https://github.com/actions/checkout#checkout-v2 + - name: Checkout repository + uses: actions/checkout@v4 + + # See doc at https://w3c.github.io/spec-prod/ + # The action only deploys the generated spec to the gh-pages branch when + # the workflow was triggered by a push to the default branch. + - name: Build and validate spec, push to gh-pages branch and deploy to /TR if needed + uses: w3c/spec-prod@v2 + with: + TOOLCHAIN: respec + SOURCE: format-registry/initdata/cenc-respec.html + DESTINATION: format-registry/initdata/cenc.html + GH_PAGES_BRANCH: gh-pages + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_EME_INITDATA_CENC }} + W3C_WG_DECISION_URL: https://github.com/w3c/media-wg/issues/27 + W3C_BUILD_OVERRIDE: | + specStatus: NOTE diff --git a/.github/workflows/auto-publish-eme-initdata-keyids.yml b/.github/workflows/auto-publish-eme-initdata-keyids.yml new file mode 100644 index 00000000..d002d88a --- /dev/null +++ b/.github/workflows/auto-publish-eme-initdata-keyids.yml @@ -0,0 +1,48 @@ +###################################################################### +# IMPORTANT: Do not edit this file directly! +# +# This workflow was automatically generated through the +# generate-auto-publish-workflows.mjs script. To update the workflow, +# make changes to the template file and run the script again. +###################################################################### + +name: Auto publish eme-initdata-keyids + +on: + # Worflow runs on pull requests where it makes sure that the spec can still be + # generated, that markup is valid and that there are no broken links, as + # well as on pushes to the default branch where it also deploys the generated + # spec to the gh-pages branch and publishes the result to /TR. + # The "workflow_dispatch" hook allows admins to also trigger the workflow + # manually from GitHub's UI. + pull_request: + paths: + - 'format-registry/initdata/keyids-respec.html' + push: + branches: [main] + paths: + - 'format-registry/initdata/keyids-respec.html' + workflow_dispatch: + +jobs: + main: + runs-on: ubuntu-latest + steps: + # See doc at https://github.com/actions/checkout#checkout-v2 + - name: Checkout repository + uses: actions/checkout@v4 + + # See doc at https://w3c.github.io/spec-prod/ + # The action only deploys the generated spec to the gh-pages branch when + # the workflow was triggered by a push to the default branch. + - name: Build and validate spec, push to gh-pages branch and deploy to /TR if needed + uses: w3c/spec-prod@v2 + with: + TOOLCHAIN: respec + SOURCE: format-registry/initdata/keyids-respec.html + DESTINATION: format-registry/initdata/keyids.html + GH_PAGES_BRANCH: gh-pages + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_EME_INITDATA_KEYIDS }} + W3C_WG_DECISION_URL: https://github.com/w3c/media-wg/issues/27 + W3C_BUILD_OVERRIDE: | + specStatus: NOTE diff --git a/.github/workflows/auto-publish-eme-initdata-registry.yml b/.github/workflows/auto-publish-eme-initdata-registry.yml new file mode 100644 index 00000000..56dc0fcf --- /dev/null +++ b/.github/workflows/auto-publish-eme-initdata-registry.yml @@ -0,0 +1,48 @@ +###################################################################### +# IMPORTANT: Do not edit this file directly! +# +# This workflow was automatically generated through the +# generate-auto-publish-workflows.mjs script. To update the workflow, +# make changes to the template file and run the script again. +###################################################################### + +name: Auto publish eme-initdata-registry + +on: + # Worflow runs on pull requests where it makes sure that the spec can still be + # generated, that markup is valid and that there are no broken links, as + # well as on pushes to the default branch where it also deploys the generated + # spec to the gh-pages branch and publishes the result to /TR. + # The "workflow_dispatch" hook allows admins to also trigger the workflow + # manually from GitHub's UI. + pull_request: + paths: + - 'format-registry/initdata/index-respec.html' + push: + branches: [main] + paths: + - 'format-registry/initdata/index-respec.html' + workflow_dispatch: + +jobs: + main: + runs-on: ubuntu-latest + steps: + # See doc at https://github.com/actions/checkout#checkout-v2 + - name: Checkout repository + uses: actions/checkout@v4 + + # See doc at https://w3c.github.io/spec-prod/ + # The action only deploys the generated spec to the gh-pages branch when + # the workflow was triggered by a push to the default branch. + - name: Build and validate spec, push to gh-pages branch and deploy to /TR if needed + uses: w3c/spec-prod@v2 + with: + TOOLCHAIN: respec + SOURCE: format-registry/initdata/index-respec.html + DESTINATION: format-registry/initdata/index.html + GH_PAGES_BRANCH: gh-pages + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_EME_INITDATA_REGISTRY }} + W3C_WG_DECISION_URL: https://github.com/w3c/media-wg/issues/27 + W3C_BUILD_OVERRIDE: | + specStatus: DRY diff --git a/.github/workflows/auto-publish-eme-initdata-webm.yml b/.github/workflows/auto-publish-eme-initdata-webm.yml new file mode 100644 index 00000000..949cd737 --- /dev/null +++ b/.github/workflows/auto-publish-eme-initdata-webm.yml @@ -0,0 +1,48 @@ +###################################################################### +# IMPORTANT: Do not edit this file directly! +# +# This workflow was automatically generated through the +# generate-auto-publish-workflows.mjs script. To update the workflow, +# make changes to the template file and run the script again. +###################################################################### + +name: Auto publish eme-initdata-webm + +on: + # Worflow runs on pull requests where it makes sure that the spec can still be + # generated, that markup is valid and that there are no broken links, as + # well as on pushes to the default branch where it also deploys the generated + # spec to the gh-pages branch and publishes the result to /TR. + # The "workflow_dispatch" hook allows admins to also trigger the workflow + # manually from GitHub's UI. + pull_request: + paths: + - 'format-registry/initdata/webm-respec.html' + push: + branches: [main] + paths: + - 'format-registry/initdata/webm-respec.html' + workflow_dispatch: + +jobs: + main: + runs-on: ubuntu-latest + steps: + # See doc at https://github.com/actions/checkout#checkout-v2 + - name: Checkout repository + uses: actions/checkout@v4 + + # See doc at https://w3c.github.io/spec-prod/ + # The action only deploys the generated spec to the gh-pages branch when + # the workflow was triggered by a push to the default branch. + - name: Build and validate spec, push to gh-pages branch and deploy to /TR if needed + uses: w3c/spec-prod@v2 + with: + TOOLCHAIN: respec + SOURCE: format-registry/initdata/webm-respec.html + DESTINATION: format-registry/initdata/webm.html + GH_PAGES_BRANCH: gh-pages + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_EME_INITDATA_WEBM }} + W3C_WG_DECISION_URL: https://github.com/w3c/media-wg/issues/27 + W3C_BUILD_OVERRIDE: | + specStatus: NOTE diff --git a/.github/workflows/auto-publish-eme-stream-mp4.yml b/.github/workflows/auto-publish-eme-stream-mp4.yml new file mode 100644 index 00000000..a80d8f83 --- /dev/null +++ b/.github/workflows/auto-publish-eme-stream-mp4.yml @@ -0,0 +1,48 @@ +###################################################################### +# IMPORTANT: Do not edit this file directly! +# +# This workflow was automatically generated through the +# generate-auto-publish-workflows.mjs script. To update the workflow, +# make changes to the template file and run the script again. +###################################################################### + +name: Auto publish eme-stream-mp4 + +on: + # Worflow runs on pull requests where it makes sure that the spec can still be + # generated, that markup is valid and that there are no broken links, as + # well as on pushes to the default branch where it also deploys the generated + # spec to the gh-pages branch and publishes the result to /TR. + # The "workflow_dispatch" hook allows admins to also trigger the workflow + # manually from GitHub's UI. + pull_request: + paths: + - 'format-registry/stream/mp4-respec.html' + push: + branches: [main] + paths: + - 'format-registry/stream/mp4-respec.html' + workflow_dispatch: + +jobs: + main: + runs-on: ubuntu-latest + steps: + # See doc at https://github.com/actions/checkout#checkout-v2 + - name: Checkout repository + uses: actions/checkout@v4 + + # See doc at https://w3c.github.io/spec-prod/ + # The action only deploys the generated spec to the gh-pages branch when + # the workflow was triggered by a push to the default branch. + - name: Build and validate spec, push to gh-pages branch and deploy to /TR if needed + uses: w3c/spec-prod@v2 + with: + TOOLCHAIN: respec + SOURCE: format-registry/stream/mp4-respec.html + DESTINATION: format-registry/stream/mp4.html + GH_PAGES_BRANCH: gh-pages + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_EME_STREAM_MP4 }} + W3C_WG_DECISION_URL: https://github.com/w3c/media-wg/issues/27 + W3C_BUILD_OVERRIDE: | + specStatus: NOTE diff --git a/.github/workflows/auto-publish-eme-stream-registry.yml b/.github/workflows/auto-publish-eme-stream-registry.yml new file mode 100644 index 00000000..06ecf604 --- /dev/null +++ b/.github/workflows/auto-publish-eme-stream-registry.yml @@ -0,0 +1,48 @@ +###################################################################### +# IMPORTANT: Do not edit this file directly! +# +# This workflow was automatically generated through the +# generate-auto-publish-workflows.mjs script. To update the workflow, +# make changes to the template file and run the script again. +###################################################################### + +name: Auto publish eme-stream-registry + +on: + # Worflow runs on pull requests where it makes sure that the spec can still be + # generated, that markup is valid and that there are no broken links, as + # well as on pushes to the default branch where it also deploys the generated + # spec to the gh-pages branch and publishes the result to /TR. + # The "workflow_dispatch" hook allows admins to also trigger the workflow + # manually from GitHub's UI. + pull_request: + paths: + - 'format-registry/stream/index-respec.html' + push: + branches: [main] + paths: + - 'format-registry/stream/index-respec.html' + workflow_dispatch: + +jobs: + main: + runs-on: ubuntu-latest + steps: + # See doc at https://github.com/actions/checkout#checkout-v2 + - name: Checkout repository + uses: actions/checkout@v4 + + # See doc at https://w3c.github.io/spec-prod/ + # The action only deploys the generated spec to the gh-pages branch when + # the workflow was triggered by a push to the default branch. + - name: Build and validate spec, push to gh-pages branch and deploy to /TR if needed + uses: w3c/spec-prod@v2 + with: + TOOLCHAIN: respec + SOURCE: format-registry/stream/index-respec.html + DESTINATION: format-registry/stream/index.html + GH_PAGES_BRANCH: gh-pages + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_EME_STREAM_REGISTRY }} + W3C_WG_DECISION_URL: https://github.com/w3c/media-wg/issues/27 + W3C_BUILD_OVERRIDE: | + specStatus: DRY diff --git a/.github/workflows/auto-publish-eme-stream-webm.yml b/.github/workflows/auto-publish-eme-stream-webm.yml new file mode 100644 index 00000000..ee681cf9 --- /dev/null +++ b/.github/workflows/auto-publish-eme-stream-webm.yml @@ -0,0 +1,48 @@ +###################################################################### +# IMPORTANT: Do not edit this file directly! +# +# This workflow was automatically generated through the +# generate-auto-publish-workflows.mjs script. To update the workflow, +# make changes to the template file and run the script again. +###################################################################### + +name: Auto publish eme-stream-webm + +on: + # Worflow runs on pull requests where it makes sure that the spec can still be + # generated, that markup is valid and that there are no broken links, as + # well as on pushes to the default branch where it also deploys the generated + # spec to the gh-pages branch and publishes the result to /TR. + # The "workflow_dispatch" hook allows admins to also trigger the workflow + # manually from GitHub's UI. + pull_request: + paths: + - 'format-registry/stream/webm-respec.html' + push: + branches: [main] + paths: + - 'format-registry/stream/webm-respec.html' + workflow_dispatch: + +jobs: + main: + runs-on: ubuntu-latest + steps: + # See doc at https://github.com/actions/checkout#checkout-v2 + - name: Checkout repository + uses: actions/checkout@v4 + + # See doc at https://w3c.github.io/spec-prod/ + # The action only deploys the generated spec to the gh-pages branch when + # the workflow was triggered by a push to the default branch. + - name: Build and validate spec, push to gh-pages branch and deploy to /TR if needed + uses: w3c/spec-prod@v2 + with: + TOOLCHAIN: respec + SOURCE: format-registry/stream/webm-respec.html + DESTINATION: format-registry/stream/webm.html + GH_PAGES_BRANCH: gh-pages + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_EME_STREAM_WEBM }} + W3C_WG_DECISION_URL: https://github.com/w3c/media-wg/issues/27 + W3C_BUILD_OVERRIDE: | + specStatus: NOTE diff --git a/.github/workflows/auto-publish-encrypted-media.yml b/.github/workflows/auto-publish-encrypted-media.yml new file mode 100644 index 00000000..87a1c97b --- /dev/null +++ b/.github/workflows/auto-publish-encrypted-media.yml @@ -0,0 +1,52 @@ +###################################################################### +# IMPORTANT: Do not edit this file directly! +# +# This workflow was automatically generated through the +# generate-auto-publish-workflows.mjs script. To update the workflow, +# make changes to the template file and run the script again. +###################################################################### + +name: Auto publish encrypted-media + +on: + # Worflow runs on pull requests where it makes sure that the spec can still be + # generated, that markup is valid and that there are no broken links, as + # well as on pushes to the default branch where it also deploys the generated + # spec to the gh-pages branch and publishes the result to /TR. + # The "workflow_dispatch" hook allows admins to also trigger the workflow + # manually from GitHub's UI. + pull_request: + paths: + - 'encrypted-media-respec.html' + - '*.css' + - '*.svg' + push: + branches: [main] + paths: + - 'encrypted-media-respec.html' + - '*.css' + - '*.svg' + workflow_dispatch: + +jobs: + main: + runs-on: ubuntu-latest + steps: + # See doc at https://github.com/actions/checkout#checkout-v2 + - name: Checkout repository + uses: actions/checkout@v4 + + # See doc at https://w3c.github.io/spec-prod/ + # The action only deploys the generated spec to the gh-pages branch when + # the workflow was triggered by a push to the default branch. + - name: Build and validate spec, push to gh-pages branch and deploy to /TR if needed + uses: w3c/spec-prod@v2 + with: + TOOLCHAIN: respec + SOURCE: encrypted-media-respec.html + DESTINATION: index.html + GH_PAGES_BRANCH: gh-pages + W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN_ENCRYPTED_MEDIA }} + W3C_WG_DECISION_URL: https://github.com/w3c/media-wg/issues/27 + W3C_BUILD_OVERRIDE: | + specStatus: WD diff --git a/.github/workflows/generate-respec-html.yml b/.github/workflows/generate-respec-html.yml deleted file mode 100644 index 5c6ecea4..00000000 --- a/.github/workflows/generate-respec-html.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: Generate Respec HTML -on: - push: - branches: - - main -jobs: - generate: - runs-on: ubuntu-latest - steps: - - name: Get Source - uses: actions/checkout@v2 - - name: Setup Node - uses: actions/setup-node@v2 - with: - node-version: '16' - - name: Install Respec - run: | - echo '{}' > package.json - npm install respec - - name: Prepare Build Folder - run: | - rm -rf build - mkdir -p build/format-registry/initdata - mkdir -p build/format-registry/stream - - name: Generate HTML - run: | - npx respec2html encrypted-media-respec.html -o build/index.html - npx respec2html hdcp-version-registry-respec.html -o build/hdcp-version-registry.html - npx respec2html format-registry/initdata/cenc-respec.html -o build/format-registry/initdata/cenc.html - npx respec2html format-registry/initdata/index-respec.html -o build/format-registry/initdata/index.html - npx respec2html format-registry/initdata/keyids-respec.html -o build/format-registry/initdata/keyids.html - npx respec2html format-registry/initdata/webm-respec.html -o build/format-registry/initdata/webm.html - npx respec2html format-registry/stream/index-respec.html -o build/format-registry/stream/index.html - npx respec2html format-registry/stream/mp4-respec.html -o build/format-registry/stream/mp4.html - npx respec2html format-registry/stream/webm-respec.html -o build/format-registry/stream/webm.html - - name: Update MarkDown Files - run: | - cp LICENSE.md README.md build/ - echo -e "\n\nThis branch holds the generated content served via GitHub Pages." >> build/README.md - - name: Add Other Source Files - run: cp eme.css stack_overview.svg build/ - - name: Deploy to GitHub Pages 🚀 - uses: JamesIves/github-pages-deploy-action@3.7.1 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BRANCH: gh-pages - FOLDER: build - CLEAN: true # Automatically remove deleted files diff --git a/.gitignore b/.gitignore deleted file mode 100644 index b573b58e..00000000 --- a/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -build/ -node_modules/ -package.json -package-lock.json -index.html -format-registry/initdata/cenc.html -format-registry/initdata/index.html -format-registry/initdata/keyids.html -format-registry/initdata/webm.html -format-registry/stream/index.html -format-registry/stream/mp4.html -format-registry/stream/webm.html diff --git a/TEAM.md b/TEAM.md index 73c75739..f1bb9114 100644 --- a/TEAM.md +++ b/TEAM.md @@ -4,5 +4,4 @@ Updates to generated HTML are automated using GitHub Actions. On each push to the `main` branch, the index and all registries will be regenerated and pushed to the `gh-pages` branch. -See `generate-respec-html.py` and `.github/workflows/generate-respec-html.yml` -for details on how this is done. +See `.github/workflows/auto-publish.yml` for details on how this is done. diff --git a/W3CTRMANIFEST b/W3CTRMANIFEST deleted file mode 100644 index e2c53ba8..00000000 --- a/W3CTRMANIFEST +++ /dev/null @@ -1,3 +0,0 @@ -encrypted-media-respec.html?specStatus=WD;shortName=encrypted-media;useExperimentalStyles=false respec -stack_overview.svg -eme.css diff --git a/encrypted-media-respec.html b/encrypted-media-respec.html index aec312f6..2c45d7c1 100644 --- a/encrypted-media-respec.html +++ b/encrypted-media-respec.html @@ -13,10 +13,10 @@ implementationReportURI: "https://w3c.github.io/test-results/encrypted-media/all.html", // the specification's short name, as in https://www.w3.org/TR/short-name/ - shortName: "encrypted-media", + shortName: "encrypted-media-2", - // if there a publicly available Editor's Draft, this is the link edDraftURI: "https://w3c.github.io/encrypted-media/", + prevRecURI: "https://www.w3.org/TR/2017/REC-encrypted-media-20170918/", // editors, add as many as you like // only "name" is required diff --git a/format-registry/initdata/cenc-W3CTRMANIFEST b/format-registry/initdata/cenc-W3CTRMANIFEST deleted file mode 100644 index ca70977f..00000000 --- a/format-registry/initdata/cenc-W3CTRMANIFEST +++ /dev/null @@ -1 +0,0 @@ -cenc-respec.html?specStatus=WG-NOTE;shortName=eme-initdata-cenc respec diff --git a/format-registry/initdata/keyids-W3CTRMANIFEST b/format-registry/initdata/keyids-W3CTRMANIFEST deleted file mode 100644 index f66ba156..00000000 --- a/format-registry/initdata/keyids-W3CTRMANIFEST +++ /dev/null @@ -1 +0,0 @@ -keyids-respec.html?specStatus=WG-NOTE;shortName=eme-initdata-keyids respec diff --git a/format-registry/initdata/registry-W3CTRMANIFEST b/format-registry/initdata/registry-W3CTRMANIFEST deleted file mode 100644 index 77fcfa1e..00000000 --- a/format-registry/initdata/registry-W3CTRMANIFEST +++ /dev/null @@ -1 +0,0 @@ -index-respec.html?specStatus=WG-NOTE;shortName=eme-initdata-registry respec diff --git a/format-registry/initdata/webm-W3CTRMANIFEST b/format-registry/initdata/webm-W3CTRMANIFEST deleted file mode 100644 index da7e67e1..00000000 --- a/format-registry/initdata/webm-W3CTRMANIFEST +++ /dev/null @@ -1 +0,0 @@ -webm-respec.html?specStatus=WG-NOTE;shortName=eme-initdata-webm respec diff --git a/format-registry/stream/mp4-W3CTRMANIFEST b/format-registry/stream/mp4-W3CTRMANIFEST deleted file mode 100644 index 34f187cd..00000000 --- a/format-registry/stream/mp4-W3CTRMANIFEST +++ /dev/null @@ -1 +0,0 @@ -mp4-respec.html?specStatus=WG-NOTE;shortName=eme-stream-mp4 respec diff --git a/format-registry/stream/registry-W3CTRMANIFEST b/format-registry/stream/registry-W3CTRMANIFEST deleted file mode 100644 index aaf8879a..00000000 --- a/format-registry/stream/registry-W3CTRMANIFEST +++ /dev/null @@ -1 +0,0 @@ -index-respec.html?specStatus=WG-NOTE;shortName=eme-stream-registry respec diff --git a/format-registry/stream/webm-W3CTRMANIFEST b/format-registry/stream/webm-W3CTRMANIFEST deleted file mode 100644 index b0cce619..00000000 --- a/format-registry/stream/webm-W3CTRMANIFEST +++ /dev/null @@ -1 +0,0 @@ -webm-respec.html?specStatus=WG-NOTE;shortName=eme-stream-webm respec