diff --git a/.forgejo/workflows/publish-docker.yml b/.forgejo/workflows/publish-docker.yml index 594e5a3..6310cf7 100644 --- a/.forgejo/workflows/publish-docker.yml +++ b/.forgejo/workflows/publish-docker.yml @@ -55,13 +55,16 @@ jobs: # node:20-alpine n'a pas git préinstallé - même approche de clone # manuel que le job publish (pas d'actions/checkout, action JS qui a # ses propres soucis dans les conteneurs Alpine minimalistes ici). + # Sur une PR, `ref_name` vaut le numéro de la PR (ex. `29`), qui n'est + # pas une ref récupérable ("couldn't find remote ref 29") : on récupère + # alors la branche source de la PR (`head_ref`, vide hors PR). - name: Récupérer les sources run: | set -eu apk add --no-cache git git init -q git remote add origin "${{ github.server_url }}/${{ github.repository }}.git" - git fetch -q --depth 1 origin "${{ github.ref_name }}" + git fetch -q --depth 1 origin "${{ github.head_ref || github.ref_name }}" git checkout -q FETCH_HEAD - name: Serveur - installer les dépendances diff --git a/server/test/staticPartyService.test.ts b/server/test/staticPartyService.test.ts index 98c1ca8..c2aa116 100644 --- a/server/test/staticPartyService.test.ts +++ b/server/test/staticPartyService.test.ts @@ -195,11 +195,15 @@ describe('StaticPartyStore', () => { const otherFile = path.join(partiesDir(), `${other.id}.json`); const past = new Date(Date.now() - 60000); fs.utimesSync(otherFile, past, past); + // Compared against what the filesystem itself reports back, not + // past.getTime(): Linux returns mtimeMs as a float that can land a + // hair off the exact millisecond set (e.g. ...780.999 for ...781). + const mtimeBefore = fs.statSync(otherFile).mtimeMs; StaticPartyService.markWatched(sp, alice, 'e1'); await StaticPartyStore.writeNow(); - assert.equal(fs.statSync(otherFile).mtimeMs, past.getTime(), 'the untouched party\'s file was not rewritten'); + assert.equal(fs.statSync(otherFile).mtimeMs, mtimeBefore, 'the untouched party\'s file was not rewritten'); }); it('deleting a party removes its file, even with a save still pending', async () => {