feat: initial commit
This commit is contained in:
commit
cd2f1bad66
|
@ -0,0 +1,39 @@
|
||||||
|
# MkTools
|
||||||
|
|
||||||
|
Tâches [Make](https://fr.wikipedia.org/wiki/Make) génériques à utiliser de projet en projet.
|
||||||
|
|
||||||
|
![](./misc/share_all.png)
|
||||||
|
|
||||||
|
## Utilisation
|
||||||
|
|
||||||
|
1. Dans le fichier `Makefile` de votre projet, ajouter à la fin de celui ci:
|
||||||
|
|
||||||
|
```makefile
|
||||||
|
build:
|
||||||
|
# Votre propre tâche
|
||||||
|
|
||||||
|
# [...]
|
||||||
|
|
||||||
|
# Inclure les lignes suivantes:
|
||||||
|
|
||||||
|
mktools:
|
||||||
|
rm -rf .mktools
|
||||||
|
curl -q https://forge.cadoles.com/Cadoles/mktools/raw/branch/master/install.sh | $(SHELL)
|
||||||
|
|
||||||
|
-include .mktools/*.mk
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Synchroniser le répertoire des tâches
|
||||||
|
|
||||||
|
```shell
|
||||||
|
make mktools
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Vous pouvez commencer à utiliser les tâches Make partagées !
|
||||||
|
|
||||||
|
## Tâches disponibles
|
||||||
|
|
||||||
|
|Tâches|Description|Documentation|
|
||||||
|
|------|-----------|-------------|
|
||||||
|
|`make mkt-webdav-upload`|Téléverser un fichier dans un répertoire WebDAV (Nextcloud)|[Voir ./doc/tasks/webdav.md](./doc/tasks/webdav.md)|
|
||||||
|
|`make mkt-gitea-release`|Créer une release sur un projet Gitea et téléverser des fichiers attachés|[Voir ./doc/tasks/gitea.md](./doc/tasks/gitea.md)|
|
|
@ -0,0 +1,25 @@
|
||||||
|
# Tâches Gitea
|
||||||
|
|
||||||
|
## `make mkt-gitea-release`
|
||||||
|
|
||||||
|
La tâche `mkt-gitea-release` permet de créer une "release" sur un projet Gitea et de téléverser des fichiers attachés à celles ci pour qu'ils soient disponibles en téléchargement sur cette version.
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
Exemple d'utilisation de la tâche pour la création d'une nouvelle release sur le projet factice `my-org/my-project` sur https://forge.cadoles.com, tout en attachant les fichiers présents dans le répertoire `dist/`
|
||||||
|
|
||||||
|
```makefile
|
||||||
|
# Organisation Gitea du projet
|
||||||
|
MKT_GITEA_RELEASE_ORG ?= my-org
|
||||||
|
# Projet Gitea
|
||||||
|
MKT_GITEA_RELEASE_PROJECT ?= my-project
|
||||||
|
# Version associée à la nouvelle release
|
||||||
|
MKT_GITEA_RELEASE_VERSION ?= v0.0.0
|
||||||
|
# Texte associé à la release Gitea
|
||||||
|
MKT_GITEA_RELEASE_BODY ?= My new release
|
||||||
|
|
||||||
|
# Exécution de la tâche mkt-gitea-release en passant la liste
|
||||||
|
# des fichiers à téléverser avec la nouvelle version publiée
|
||||||
|
my-release:
|
||||||
|
$(MAKE) MKT_GITEA_RELEASE_ATTACHMENTS=$$(find dist/* -type f) mkt-gitea-release
|
||||||
|
```
|
|
@ -0,0 +1,24 @@
|
||||||
|
# Tâches WebDAV
|
||||||
|
|
||||||
|
## `make mkt-webdav-upload`
|
||||||
|
|
||||||
|
La tâche `mkt-webdav-upload` permet de téléverser un fichier sur un espace de partage de fichier proposant une interface WebDAV (Nextcloud par exemple).
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
Exemple d'utilisation de la tâche pour le téléversement d'un fichier `my-doc.txt` généré par une tâche tierce dans le répertoire `my-doc` dans l'espace Nextcloud de l'utilisateur authentifié:
|
||||||
|
|
||||||
|
```makefile
|
||||||
|
# Identifiants de connexion Nextcloud
|
||||||
|
# Il est conseillé bien entendu de ne pas laisser le mot de passe
|
||||||
|
# et le nom d'utilisateur "en dur" dans le fichier Makefile...
|
||||||
|
MKT_WEBDAV_USER ?= my-nextcloud-user
|
||||||
|
MKT_WEBDAV_PASSWD ?= my-nextcloud-password
|
||||||
|
# URL de base de l'interface WebDAV de l'espace Nextcloud Cadoles
|
||||||
|
MKT_WEBDAV_REMOTE_URL = https://nextcloud.cadoles.com/nextcloud/remote.php/dav/files
|
||||||
|
# Répertoire de destination du fichier à téléverser
|
||||||
|
MKT_WEBDAV_DIR = /$(MKT_WEBDAV_USER)/my-doc
|
||||||
|
|
||||||
|
my-upload:
|
||||||
|
$(MAKE) MKT_WEBDAV_FILE=test.txt mkt-webdav-upload
|
||||||
|
```
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
TASKS_DIR=".mktools"
|
||||||
|
TASKS_FILES="webdav gitea"
|
||||||
|
|
||||||
|
main() {
|
||||||
|
echo "Creating directory '$TASKS_DIR/'"
|
||||||
|
# Create $TASKS_DIR
|
||||||
|
mkdir -p "$TASKS_DIR"
|
||||||
|
|
||||||
|
# Download each referenced task files in $TASKS_DIR
|
||||||
|
for f in $TASKS_FILES; do
|
||||||
|
echo "Downloading file '$TASKS_DIR/$f.mk'"
|
||||||
|
curl -qo "$TASKS_DIR/$f.mk" "https://forge.cadoles.com/Cadoles/mktools/raw/branch/master/tasks/$f.mk"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Add $TASKS_DIR to .gitignore
|
||||||
|
if [ ! -f .gitignore ]; then
|
||||||
|
touch .gitignore
|
||||||
|
fi
|
||||||
|
grep -qF -- "$TASKS_DIR/" ".gitignore" || echo "$TASKS_DIR/" >> ".gitignore"
|
||||||
|
|
||||||
|
echo "Done"
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
|
@ -0,0 +1,29 @@
|
||||||
|
MKT_GITEA_RELEASE_PROJECT ?=
|
||||||
|
MKT_GITEA_RELEASE_ORG ?=
|
||||||
|
MKT_GITEA_RELEASE_BASE_URL ?= https://forge.cadoles.com
|
||||||
|
MKT_GITEA_RELEASE_VERSION ?=
|
||||||
|
MKT_GITEA_RELEASE_COMMIT_TARGET ?= $(shell git rev-parse HEAD)
|
||||||
|
MKT_GITEA_RELEASE_IS_DRAFT ?= false
|
||||||
|
MKT_GITEA_RELEASE_BODY ?=
|
||||||
|
MKT_GITEA_RELEASE_ATTACHMENTS ?=
|
||||||
|
MKT_GITEA_RELEASE_USERNAME ?=
|
||||||
|
MKT_GITEA_RELEASE_PASSWORD ?=
|
||||||
|
|
||||||
|
mkt-gitea-release: tools/gitea-release/bin/gitea-release.sh
|
||||||
|
GITEA_RELEASE_PROJECT="$(MKT_GITEA_RELEASE_PROJECT)" \
|
||||||
|
GITEA_RELEASE_ORG="$(MKT_GITEA_RELEASE_ORG)" \
|
||||||
|
GITEA_RELEASE_BASE_URL="$(MKT_GITEA_RELEASE_BASE_URL)" \
|
||||||
|
GITEA_RELEASE_VERSION="$(MKT_GITEA_RELEASE_VERSION)" \
|
||||||
|
GITEA_RELEASE_NAME="$(MKT_GITEA_RELEASE_VERSION)" \
|
||||||
|
GITEA_RELEASE_COMMITISH_TARGET="$(MKT_GITEA_RELEASE_COMMIT_TARGET)" \
|
||||||
|
GITEA_RELEASE_IS_DRAFT="$(MKT_GITEA_RELEASE_IS_DRAFT)" \
|
||||||
|
GITEA_RELEASE_BODY="$(MKT_GITEA_RELEASE_BODY)" \
|
||||||
|
GITEA_RELEASE_ATTACHMENTS="$(MKT_GITEA_RELEASE_ATTACHMENTS)" \
|
||||||
|
GITEA_RELEASE_USERNAME="$(MKT_GITEA_RELEASE_USERNAME)" \
|
||||||
|
GITEA_RELEASE_PASSWORD="$(MKT_GITEA_RELEASE_PASSWORD)" \
|
||||||
|
tools/gitea-release/bin/gitea-release.sh
|
||||||
|
|
||||||
|
tools/gitea-release/bin/gitea-release.sh:
|
||||||
|
mkdir -p tools/gitea-release/bin
|
||||||
|
curl --output tools/gitea-release/bin/gitea-release.sh https://forge.cadoles.com/Cadoles/Jenkins/raw/branch/master/resources/com/cadoles/gitea/gitea-release.sh
|
||||||
|
chmod +x tools/gitea-release/bin/gitea-release.sh
|
|
@ -0,0 +1,19 @@
|
||||||
|
MKT_WEBDAV_USER ?=
|
||||||
|
MKT_WEBDAV_PASSWD ?=
|
||||||
|
MKT_WEBDAV_REMOTE_URL ?=
|
||||||
|
MKT_WEBDAV_DIR ?=
|
||||||
|
MKT_WEBDAV_FILE ?=
|
||||||
|
|
||||||
|
mkt-webdav-upload:
|
||||||
|
curl \
|
||||||
|
-f \
|
||||||
|
-u '$(MKT_WEBDAV_USER):$(MKT_WEBDAV_PASSWD)' \
|
||||||
|
-X MKCOL \
|
||||||
|
"$(MKT_WEBDAV_REMOTE_URL)/$(MKT_WEBDAV_DIR)"
|
||||||
|
curl \
|
||||||
|
-f \
|
||||||
|
-u '$(MKT_WEBDAV_USER):$(MKT_WEBDAV_PASSWD)' \
|
||||||
|
-T "$(PWD)/$(MKT_WEBDAV_FILE)" \
|
||||||
|
"$(MKT_WEBDAV_REMOTE_URL)/$(MKT_WEBDAV_DIR)/$(shell basename $(MKT_WEBDAV_FILE))"
|
||||||
|
|
||||||
|
.PHONY: mkt-webdav-upload
|
Loading…
Reference in New Issue