extraterrestre
Estoy recibiendo esto:
Command failed: git diff --name-only HEAD^..HEAD
fatal: ambiguous argument 'HEAD^..HEAD': unknown revision or path not in the working tree.
quiero correr git diff --name-only HEAD^..HEAD
en mi sucursal para obtener una lista de los archivos que se cambiaron. Funciona localmente pero no en acciones de GitHub. ¿Que debo hacer?
Mi código es este:
name: build
on:
push:
branches:
- main
jobs:
run:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Configure Node.js
uses: actions/setup-node@v2
with:
node-version: 14.x
- name: Install dependencies
run: yarn install
- name: Publish file changes to Slack
# HERE I run `git diff` in node.js process
run: "SLACK_TOKEN=${{ secrets.GITHUB_TOKEN }} npx ts-node scripts/publishSlackUpdate"
- name: Build TOC
run: make toc
- name: Commit build changes
uses: EndBug/add-and-commit@v7
with:
author_name: Docs Builder
author_email: docs@mysite.com
message: 'Updated build'
add: '*.md'
Si echa un vistazo a la documentación de la acciones/pago@v2 acción, verá que realiza una clonación superficial con una sola revisión de forma predeterminada:
# Number of commits to fetch. 0 indicates all history for all branches and tags.
# Default: 1
fetch-depth: ''
Debido a que solo obtiene una sola revisión, no hay HEAD^
.
Puede solucionar esto configurando el fetch-depth
opción en la acción de pago. Configurándolo en 0
obtendrá el historial completo; alternativamente, para lo que está haciendo, probablemente podría simplemente configurarlo para 2
:
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
fetch-depth: 2
-
¿Cómo obtienes todo el repositorio de github? Quiero hacer otra cosa donde inspeccione todo el historial de confirmación.
– extraterrestre
29 de enero de 2021 a las 0:21
-
Eso sería “Configurarlo en 0 obtendrá el historial completo”
– alondras
29 de enero de 2021 a las 1:10
-
Intenté esto y no funcionó. También hay un problema donde dicen que no es posible github.com/actions/checkout/issues/161 🤷♂️
– hrdwdmrbl
7 de febrero de 2021 a las 2:46
-
@hrdwdmrbl parece funcionar bien. lo probé en uno de mis repositorios y el
actions/checkout@v2
La acción revisó todo el historial del repositorio.– alondras
7 de febrero de 2021 a las 3:31
-
@hrdwdmrbl te hice un ejemplo completo aquí (Tomé el repositorio de GNU hello y agregué un flujo de trabajo de ejemplo).
– alondras
8 febrero 2021 a las 15:50
Poniendo origin/
antes de que el nombre de la sucursal funcionara para mí
git diff --name-only origin/main origin/${GITHUB_HEAD_REF}
-
El mismo caso conmigo también. No estoy seguro de por qué lo han hecho obligatorio.
– C Deepak
9 de febrero a las 13:33
-
Para elaborar, necesitaba git diff contra ‘main’, para lo cual aún necesitaba establecer el
fetch-depth: 0
en caja Además, necesitaba establecer mi diferencia contraorigin/main
. Supongo que tener todo el historial, ¿no incluye también las referencias de la rama?– Contemplavientos
10 de febrero a las 11:19
-
En una configuración, esto funcionó para mí. Luego, en otra configuración, no funcionó y tuve que eliminar
origin/
de la rama de características. Realmente extraño por qué tampoco hay consistencia.– pluma loca
26 de febrero a las 3:56
Puedes usar jitterbit/get-changed-files Acción de la Asamblea General:
- id: files
uses: jitterbit/get-changed-files@v1
- run: |
for changed_file in ${{ steps.files.outputs.all }}; do
echo "Do something with this ${changed_file}."
done
¿Revisaste tu repositorio en tu acción? Sería más fácil ayudarlo si nos mostrara el flujo de trabajo que falla.
– alondras
28 de enero de 2021 a las 20:27
No puedo mostrar el flujo de trabajo fallido, es un repositorio privado. No, no lo comprobé, ¿cómo hago eso? Está en una sucursal específica, la sucursal actual de PR. Actualizado con mi configuración.
– extraterrestre
28 de enero de 2021 a las 20:28
Por “el flujo de trabajo fallido”, me refiero a la definición del flujo de trabajo, que ha publicado. ¡Gracias! Parece que revisaste el repositorio (a través de la
actions/checkout@v2
acción). A ver si puedo reproducir el fallo….– alondras
28 de enero de 2021 a las 20:32