diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..de599ce --- /dev/null +++ b/.drone.yml @@ -0,0 +1,171 @@ +kind: pipeline +type: docker +name: deploy-project + +steps: + - name: deploy public_html + image: alpine:3.20 + volumes: + - name: ididit + path: /var/www/ididit + commands: + - | + if [ -d public_html ] && [ "$(ls -A public_html)" ]; then + target="/var/www/ididit/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME}" + echo "Déploiement vers $target" + rm -rf "$target" + mkdir -p "$target" + cp -r public_html/* "$target/" + echo "Déploiement terminé." + ls -alh "$target" + else + echo "Aucun dossier public_html à déployer." + fi + when: + branch: + - main + event: + - push + + - name: build-linux + image: ghcr.io/cirruslabs/flutter:latest + volumes: + - name: ididit + path: /var/www/ididit + commands: + - apt-get update && apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev tar + - VERSION=$(grep '^version:' pubspec.yaml | awk '{print $2}') + - | + if [ -d linux ]; then + echo "Build Linux..." + flutter pub get + flutter build linux --release + TARGET="/var/www/ididit/$DRONE_REPO_OWNER/$DRONE_REPO_NAME/releases/$VERSION/linux" + mkdir -p "$TARGET" + tar czf "$TARGET/linux-$VERSION.tgz" -C build/linux/x64/release/bundle . + echo "Linux bundle published as $TARGET/linux-$VERSION.tgz" + else + echo "No linux/ directory, skipping." + fi + + - name: build-android + image: ghcr.io/cirruslabs/flutter:latest + volumes: + - name: ididit + path: /var/www/ididit + environment: + ANDROID_HOME: /opt/android-sdk + commands: + - VERSION=$(grep '^version:' pubspec.yaml | awk '{print $2}') + - | + if [ -d android ]; then + echo "Build Android..." + flutter pub get + flutter build apk --release + TARGET="/var/www/ididit/$DRONE_REPO_OWNER/$DRONE_REPO_NAME/releases/$VERSION/android" + mkdir -p "$TARGET" + cp build/app/outputs/flutter-apk/app-release.apk "$TARGET/$DRONE_REPO_NAME-$VERSION.apk" + echo "Android build published to $TARGET" + else + echo "No android/ directory, skipping." + fi + + - name: build-web + image: ghcr.io/cirruslabs/flutter:latest + volumes: + - name: ididit + path: /var/www/ididit + commands: + - apt-get update && apt-get install -y tar + - VERSION=$(grep '^version:' pubspec.yaml | awk '{print $2}') + - | + if [ -d web ]; then + echo "Build Web..." + flutter pub get + flutter build web --release + TARGET="/var/www/ididit/$DRONE_REPO_OWNER/$DRONE_REPO_NAME/releases/$VERSION/web" + mkdir -p "$TARGET" + tar czf "$TARGET/web-$VERSION.tgz" -C build/web . + echo "Web bundle published as $TARGET/web-$VERSION.tgz" + else + echo "No web/ directory, skipping." + fi + + - name: generate-versions-html + image: alpine:3.20 + volumes: + - name: ididit + path: /var/www/ididit + commands: + - OWNER="$DRONE_REPO_OWNER" + - REPO="$DRONE_REPO_NAME" + - RELEASES_DIR="/var/www/ididit/$OWNER/$REPO/releases" + - REPO_URL="https://gitea.bymycode.com/$OWNER/$REPO" + - | + HTML="$RELEASES_DIR/index.html" + echo '' > "$HTML" + echo '' >> "$HTML" + echo '
' >> "$HTML" + echo ' ' >> "$HTML" + echo "