Implemente su aplicación Vite en Github Pages, de un vistazo.
vite
como herramienta build
. Vue, React, Svelte... ¡Lo que sea! - name: Vite Github Pages Deployer
uses: skywarth/[email protected]
Puede utilizar esta acción simplemente agregándola apropiadamente a los archivos yaml
de su acción.
Asegúrese de colocar este paso después del paso de "pagar".
- name : Vite Github Pages Deployer
uses : skywarth/[email protected]
id : deploy_to_pages
Tienes que colocar la sección de entorno justo antes de los steps
. Esto permite la liberación del entorno, en la pestaña de entornos.
environment :
name : demo
url : ${{ steps.deploy_to_pages.outputs.github_pages_url }}
Debe establecer el permiso adecuado para la acción para poder liberar correctamente el entorno y el artefacto. Si no lo hace, puede recibir errores de permiso.
La declaración de permiso se puede colocar en cualquier lugar antes de jobs:
sección.
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions :
contents : read
pages : write
id-token : write
Si no sabe qué hacer, qué acciones son o dónde colocar las piezas de código en la sección de uso, siga estos pasos:
./.github/workflows/vite-github-pages-deploy.yml
. En esencia, cree una carpeta .github
en la raíz de su proyecto y cree un archivo yml
allí.master
, o en su próxima ejecución manual desde la pestaña de acciones, esta acción se ejecutará y su proyecto se implementará en las páginas de github. name : Vite Github Pages Deploy
on :
# Runs on pushes targeting the default branch
push :
branches : ["master", "main"]
# 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
concurrency :
group : " pages "
cancel-in-progress : false
jobs :
# Build job
build :
runs-on : ubuntu-latest
environment :
name : demo
url : ${{ steps.deploy_to_pages.outputs.github_pages_url }}
steps :
- name : Checkout
uses : actions/checkout@v3
- name : Vite Github Pages Deployer
uses : skywarth/vite-github-pages-deployer@master
id : deploy_to_pages
¿Quieres verlo en acción? Claro, dirígete a este proyecto de vue para verlo en vivo: https://github.com/skywarth/country-routing-algorithm-demo-vue
public_base_path
(opcional)Tipo | Por defecto | Valores de ejemplo |
---|---|---|
string | /{your-repo-name} O / si tienes CNAME | /my-vite-project |
Cadena de ruta base pública para Vite, esto afecta las rutas, el historial y los enlaces de activos. Asegúrese de proporcionar la información adecuada, ya que GitHub Pages almacena su aplicación en un directorio bajo un subdominio. Si planea implementar en una plataforma alternativa como Vercel, simplemente debe proporcionar /
.
En circunstancias normales, no es necesario proporcionar/anular este parámetro; la acción lo establecerá en el nombre de su repositorio de manera adecuada.
public_base_path
:public_base_path
, se utilizará independientemente.public_base_path
:CNAME
para la configuración del dominio personalizado de GitHub Pages, entonces el valor predeterminado public_base_path
se resolverá en /
CNAME
, el valor predeterminado public_base_path
se resolverá en /{your-repo-name}
Vea la sugerencia para la expansión CNAME aquí
Agradecido a Greg Sadetsky por su propuesta sobre la alternancia del valor predeterminado de esta entrada. Además, agradezco su colaboración para explicar la configuración del dominio personalizado de las páginas de GitHub y la fase de prueba de estos cambios.
build_path
(opcional)Tipo | Por defecto | Valores de ejemplo |
---|---|---|
string | ./dist | - ./deploy - ./dist/browser |
¿Qué carpeta desea que use su página de GitHub como directorio raíz, después del proceso de compilación? Simplemente es el directorio de salida de su compilación, como ./dist
. Si su configuración vite
se exporta a una carpeta que no sea ./dist
, entonces debe pasarla como parámetro.
install_phase_node_env
(opcional)Tipo | Por defecto | Valores de ejemplo |
---|---|---|
string | dev | - dev - production - staging - test - my-little-pony-env |
Entorno de nodo que se utilizará para la instalación de dependencias. Es imperativo que utilice un entorno que tenga 'vite' como dependencia . Común y naturalmente, ese env es dev
.
Si no proporciona un NODE_ENV que tenga vite
como dependencia (verifique su paquete.json), recibirá sh: 1: vite: not found
durante la fase de compilación.
build_phase_node_env
(opcional)Tipo | Por defecto | Valores de ejemplo |
---|---|---|
string | production | - dev - production - staging - test - my-little-pony-env |
Entorno de nodo que se utilizará para la fase de construcción. Puede proporcionar cualquier valor NODE_ENV válido para esto, ya que las compilaciones de nodos tienden a cambiar para diferentes entornos (por ejemplo: oculta las funciones de depuración de la producción).
artifact_name
(opcional)Tipo | Por defecto | Valores de ejemplo |
---|---|---|
string | github-pages | - what-a-cool-artifact - ah-yes-ze-artifact |
Nombre deseado para el artefacto expuesto. Este nombre es visible en el trabajo y se utiliza como nombre de los artefactos.
package_manager
(opcional)Tipo | Por defecto | Valores de ejemplo |
---|---|---|
string | npm | - npm - yarn |
Indique el administrador de paquetes de preferencia. Se utilizará para instalar dependencias y construir el dist
. Por ejemplo, si prefiere/usa yarn
como administrador de paquetes para el proyecto, puede pasar package_manager: 'yarn'
como entrada que luego se usará como yarn install
y yarn build
.
debug_mode
(opcional)Tipo | Por defecto | Valores de ejemplo |
---|---|---|
string | 'false' | - 'true' - 'false' |
Controla el modo de depuración, cadena, 'true'
es para activado. Cuando se activa, generará cierta información sobre ciertos pasos. Se utiliza principalmente para el desarrollo, pero úselo como desee para inspeccionar su entorno y sus variables.
github_pages_url
Tipo | Valores de ejemplo |
---|---|
string | - 'https://skywarth.github.io/country-routing-algorithm-demo-vue/' |
Este valor de salida se utilizará para adquirir la URL de las páginas de github después de la implementación. Se puede acceder de esta manera: ${{ steps.deploy_to_pages.outputs.github_pages_url }}
(deploy_to_pages es la identificación del paso en el que ejecuta Vite Github Pages Deployer).
Se espera que se utilice como una forma de publicar el entorno durante el trabajo, así:
environment:
name: demo
url: ${{ steps.deploy_to_pages.outputs.github_pages_url }}
Vea un flujo de trabajo de ejemplo para comprender cómo utilizar este resultado.
Error: Environment URL '' is not a valid http(s) URL, so it will not be shown as a link in the workflow graph.
Causa: Falta la declaración de entorno en la acción; debe agregarla a su archivo yaml
de acción para resolver el error/advertencia y mostrar el entorno publicado en la pestaña de environments
del repositorio.
Solución: agregue lo siguiente a su acción:
environment :
# Name could be whatever you wish. It'll be visible publicly under the environments tab.
name : demo
url : ${{ steps.deploy_to_pages.outputs.github_pages_url }}
deploy_to_pages
debe ser idéntico a la id
del paso en el que ejecuta el Vite GitHub pages deployer
. Consulte el flujo de trabajo de ejemplo para obtener más detalles.
GITHUB_TOKEN
Error: Error: Ensure GITHUB_TOKEN has permission "id-token: write".
Causa: El permiso no se configuró como se indica en la sección de uso. Si no se otorgan los permisos adecuados a la acción, no podrá crear artefactos ni crear entornos.
Solución: agregue el siguiente código sobre permisos a su archivo yaml
de acción.
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
Consulte el flujo de trabajo de ejemplo si no está seguro de dónde colocarlo.
package-lock.json
no está presente cuando se usa npm
como preferencia del administrador de paquetes. Error: The
command can only install with an existing package-lock.json...
Causa: Si la preferencia de entrada package_manager
está configurada en npm
(o de forma predeterminada, no asignada), instalará dependencias usando npm ci
que utiliza package-lock.json
. En este caso, asegúrese de que package-lock.json
esté presente en la raíz de su proyecto.
Solución: agregue su archivo package-lock.json
a su proyecto. Si está en el directorio pero no aparece en el repositorio, verifique su archivo gitignore y elimínelo de gitignore. Alternativamente, puede configurar yarn
como su administrador de paquetes preferido para la instalación de dependencias mediante la entrada del parámetro package_manager
de la acción.
bash-files
) bash-files
)¿Hay algo que requieres, esta acción no cumple con tus expectativas o carece de ciertos futuros que te impiden utilizarla? Abra un problema y lo agregaremos a la hoja de ruta/TODO. Las contribuciones son bienvenidas.
${{github.action_path}}
: te proporciona el directorio para esta acción.
${{ github.workspace }}
: te proporciona el directorio del proyecto (por ejemplo: /home/runner/work/country-routing-algorithm-demo-vue/country-routing-algorithm-demo-vue)
Cuando importa un archivo sh en el shell bash, solo se puede acceder a él durante ese paso. Esto se debe al hecho de que cada paso es un caparazón en sí mismo.
Dentro de archivos sh
separados, puede acceder a las variables de entrada de la acción por su respectivo nombre en mayúscula. Por ejemplo:
inputs:
package_manager:
description: "Your preference of package manager: 'npm' and 'yarn' are possible values."
required: false
default: 'npm'
${{ inputs.package_manager }}
sh
: $PACKAGE_MANAGER
env:
SOME_OTHER_NAME: ${{ inputs.package_manager }}
Si ejecuta archivos sh
en pasos, no espere que cada shell comparta los entornos. Por ejemplo, en un paso instalas dependencias en install.sh, en otro paso construyes mediante build.sh. No funcionará porque las bibliotecas instaladas solo están disponibles para el paso install.sh. Esta es la razón por la que fallaron bash-files
. Consulté GPT pero aparentemente no hay forma de lograrlo.