Tengo un sitio web estático que estoy implementando con Github Actions. El sitio web consta de 1 archivo HTML y varios archivos de configuración .yaml. Hay una función javascript simple que carga todos los archivos .yaml. Sin embargo, actualmente la lista de archivos .yaml está codificada. ¿Hay alguna forma de:
Estructura de directorios
index.html config/ |-- first.yaml |-- second.yaml |-- ...índice.html
... <script> // how can we dynamically create this array? var files = [ {"name": "first.yaml"}, {"name": "second.yaml"}, ... ] </script>Usa esto: bluwy/substitute-string-action@v1
Aquí hay un ejemplo:
jobs: build: runs-on: ubuntu-latest steps: - uses: bluwy/substitute-string-action@v1 id: sub with: _input-text: 'Hello World!' World: GitHubUrl a la acción con los documentos completos: https://github.com/bluwy/substitute-string-action
Reuní la solución de la respuesta anterior para que puedas imaginarlo mejor.
El flujo de trabajo primero pasa por los archivos yaml en el directorio de configuración y los imprime como una cadena de: "config1.yaml", "config2.yaml"
Luego usa la acción bluwy/substitute-string-action@v1 mencionada para reemplazarla en el archivo index.html.
Es una solución cruda solo para mostrar cómo puede abordar este problema. La solución de la vida real debería ser más compleja.
Puede consultar el paso "Ejecutar cat index.html" en mi acción de prueba
índice.html
<script type="text/javascript"> var files = [%%files%%] </script>Flujo de trabajo:
jobs: get_config: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Get files from config folder id: dir run: echo "::set-output name=files::$(ls -m config | sed -r 's/([a-z0-9]+\.ya?ml)/"\1"/gi')" - name: Replace file in index.html uses: bluwy/substitute-string-action@v1 with: _input-file: 'index.html' _output-file: 'index.html' _format-key: '%%key%%' files: ${{ steps.dir.outputs.files }}