Skip to content

Commit a1a73de

Browse files
Introdotto svn-include-from
Per avere un comportamento in `whitelist`
1 parent 360264e commit a1a73de

3 files changed

Lines changed: 18 additions & 6 deletions

File tree

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,19 @@ jobs:
2727
svn-username: ${{ secrets.SVN_USERNAME }}
2828
svn-password: ${{ secrets.SVN_PASSWORD }}
2929
svn-url: ${{ secrets.SVN_URL }}
30+
svn-include-from: .svninclude
3031
svn-path: trunk
3132
dry-run: true # Opzionale, di default è false
3233
```
3334
3435
## Opzioni
3536
37+
### `svn-include-from`
38+
39+
Path al file che contiene l'elenco dei path da includere nel commit. È obbligatorio e puntare ad un file esistente che descrivere un elenco di file da includere nel commit.
40+
Vedere `man rsync` per la documentazione di `--include-from`.
41+
È l'opposto di un file `.gitignore`.
42+
3643
### `dry-run`
3744

3845
Se impostato a `true` non effettua il commit su SVN, ma mostra solo le modifiche che verranno effettuate.

action.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ inputs:
2020
svn-path:
2121
description: "Path all'interno repository SVN"
2222
default: 'trunk'
23+
svn-include-from:
24+
description: 'Path del file .svninclude che definisce l\'elenco dei file da includere con rsync. Vedere `man rsync` alla voce "--include-from" e "FILTER RULES" per maggiori informazioni'
25+
default: '.svninclude'
2326
package-json-path:
2427
description: 'Path del package.json da cui estrarre la versione'
2528
default: 'package.json'
@@ -38,6 +41,7 @@ runs:
3841
INPUT_SVN_PASSWORD: ${{ inputs.svn-password }}
3942
INPUT_SVN_URL: ${{ inputs.svn-url }}
4043
INPUT_SVN_PATH: ${{ inputs.svn-path }}
44+
INPUT_SVN_INCLUDE_FROM: ${{ inputs.svn-include-from }}
4145
INPUT_DRY_RUN: ${{ inputs.dry-run }}
4246
INPUT_ALLOW_GIT_FILES: ${{ inputs.allow-git-files }}
4347
INPUT_COMMIT_MESSAGE: ${{ inputs.commit-message }}

deploy.mjs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,21 +34,22 @@ cd(svnDir);
3434
await $`svn update --set-depth infinity ${process.env.INPUT_SVN_PATH} ${svnAuthFlags}`;
3535

3636
echo`➤ Copio i file...`
37-
if (!fs.existsSync(path.join(process.env.GITHUB_WORKSPACE, '.svnignore'))) {
38-
echo`ℹ︎ Impossibile trovare il file .svnignore, annullo il deploy.`;
37+
const svnIncludePath = path.join(process.env.GITHUB_WORKSPACE, process.env.INPUT_SVN_INCLUDE_FROM);
38+
if (!fs.existsSync(svnIncludePath)) {
39+
echo`ℹ︎ Impossibile trovare il file ${svnIncludePath}, annullo il deploy.`;
3940
await $`exit 1`;
4041
}
41-
await $`rsync -rc --exclude-from=${process.env.GITHUB_WORKSPACE + '/.svnignore'} ${process.env.GITHUB_WORKSPACE + '/'} ${process.env.INPUT_SVN_PATH} --delete --delete-excluded`;
42+
await $`rsync -rc --include="*/" --include-from=${svnIncludePath} --exclude="*" --prune-empty-dirs ${process.env.GITHUB_WORKSPACE + '/'} ${process.env.INPUT_SVN_PATH} --delete --delete-excluded`;
4243

4344
// Dopo l'rsync verifico che non ci siano file di Git
4445
if (process.env.INPUT_ALLOW_GIT_FILES !== 'true') {
4546
echo`➤ Controllo i file di Git...`;
4647
if (fs.existsSync(path.join(svnDir, '.git'))) {
47-
echo`ℹ︎ Trovata cartella .git, annullo il deploy. Aggiungerla a .svnignore.`;
48+
echo`ℹ︎ Trovata cartella .git, annullo il deploy.`;
4849
await $`exit 1`;
4950
}
5051
if (fs.existsSync(path.join(svnDir, '.github'))) {
51-
echo`ℹ︎ Trovata cartella .github, annullo il deploy. Aggiungerla a .svnignore.`;
52+
echo`ℹ︎ Trovata cartella .github, annullo il deploy.`;
5253
await $`exit 1`;
5354
}
5455
}
@@ -73,7 +74,7 @@ if (process.env.INPUT_DRY_RUN === 'true') {
7374
}
7475
else {
7576
echo`➤ Commit...`
76-
await $`svn commit -m ${`Aggiornamento automatico v${version}`} --non-interactive ${svnAuthFlags}`;
77+
await $`svn commit -m ${commitMessage} --non-interactive ${svnAuthFlags}`;
7778
}
7879

7980
echo`✓ Rilasciato su SVN.`;

0 commit comments

Comments
 (0)