diff --git a/.drone.yml b/.drone.yml index 2078b31..8663715 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,38 +1,48 @@ -################################################################################ -# development -################################################################################ +########### MOODIO TEST ########### +################################### kind: pipeline type: docker -name: (main) build flutter web and push to artifactory - +name: (pwa-test) build pwa and scp to test server steps: - - name: pwa tag - image: alpine/git:2.40.1 + - name: build flutter + image: docker-mirror.ravanertebat.ir/ghcr/cirruslabs/flutter:3.38.10 commands: - - APP_VERSION=$(git rev-list HEAD --count --no-merges)-$DRONE_BRANCH + - flutter --version + - | + set -e + case "$DRONE_BRANCH" in + master) echo prod;; + uat) echo uat;; + dev) echo test;; + *) echo dev;; + esac > .environment + - echo "Branch ${DRONE_BRANCH}, Environment $(cat .environment)" + - APP_VERSION=$(cat .environment)-${DRONE_BUILD_NUMBER} - echo "APP Version tags $APP_VERSION" - - echo -n "$APP_VERSION" >> .tags + - echo -n "$APP_VERSION,latest" >> .tags + - mkdir -p ./artifacts/flutter + - rm -rf build + - flutter pub get + - flutter build web --release --output=build/tm_pwa + - ls -ltrh build/tm_pwa - - name: build pwa + - name: build admin and push to artifactory image: plugins/docker settings: - dockerfile: "Dockerfile" - username: "cicd" + # dockerfile: Dockerfile-admin + username: cicd password: - from_secret: "REGISTRY_PASSWORD" - repo: "artifactory.ravanertebat.ir/tm/pwa" - registry: "artifactory.ravanertebat.ir" - build_args: - - FLUTTER_VERSION=3.29.3 - - NGINX=1.25.2-alpine3.18-slim - + from_secret: REGISTRY_PASSWORD + repo: artifactory.ravanertebat.ir/tm/pwa + registry: artifactory.ravanertebat.ir node: tag: aecde-docker-runner trigger: branch: - - main - - develop + - master + - uat + - dev event: - - custom \ No newline at end of file + - custom diff --git a/Dockerfile b/Dockerfile index f6da841..69217da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,55 +1,3 @@ -ARG FLUTTER_VERSION=3.29.3 -ARG NGINX=1.25.2-alpine3.18-slim +FROM docker-mirror.ravanertebat.ir/hub/nginx:1.25.2-alpine3.18-slim -# Stage 1 - Build Flutter Web on Debian -FROM debian:latest AS builder - -# Install system dependencies -RUN apt-get update && \ - apt-get install -y \ - git \ - curl \ - unzip \ - xz-utils \ - libglu1-mesa \ - cmake \ - clang \ - ninja-build \ - pkg-config \ - && rm -rf /var/lib/apt/lists/* - -# Install Flutter manually -RUN git clone https://github.com/flutter/flutter.git /usr/local/flutter -WORKDIR /usr/local/flutter -RUN git checkout stable - -# Set Flutter environment -ENV PATH="$PATH:/usr/local/flutter/bin:/usr/local/flutter/bin/cache/dart-sdk/bin" -RUN flutter doctor -v -RUN flutter config --enable-web - -# Copy app files -COPY . /app -WORKDIR /app - -# Clean and get packages -RUN flutter clean -RUN flutter pub get -RUN flutter build web --release --output=build/tm_pwa - -# Stage 2 - Runtime with NGINX -FROM nginx:${NGINX} - -# Install runtime dependencies -RUN apk --no-cache add \ - curl \ - tzdata \ - ca-certificates \ - && mkdir -p /var/log/app \ - && chown nginx:nginx /var/log/app - -# Copy build files from Debian builder -COPY --from=builder /app/build/tm_pwa /usr/tm/nginx/html - -EXPOSE 80 -CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file +COPY ./artifacts/flutter/tm_pwa /usr/share/nginx/html \ No newline at end of file diff --git a/Dockerfile-old b/Dockerfile-old new file mode 100644 index 0000000..f6da841 --- /dev/null +++ b/Dockerfile-old @@ -0,0 +1,55 @@ +ARG FLUTTER_VERSION=3.29.3 +ARG NGINX=1.25.2-alpine3.18-slim + +# Stage 1 - Build Flutter Web on Debian +FROM debian:latest AS builder + +# Install system dependencies +RUN apt-get update && \ + apt-get install -y \ + git \ + curl \ + unzip \ + xz-utils \ + libglu1-mesa \ + cmake \ + clang \ + ninja-build \ + pkg-config \ + && rm -rf /var/lib/apt/lists/* + +# Install Flutter manually +RUN git clone https://github.com/flutter/flutter.git /usr/local/flutter +WORKDIR /usr/local/flutter +RUN git checkout stable + +# Set Flutter environment +ENV PATH="$PATH:/usr/local/flutter/bin:/usr/local/flutter/bin/cache/dart-sdk/bin" +RUN flutter doctor -v +RUN flutter config --enable-web + +# Copy app files +COPY . /app +WORKDIR /app + +# Clean and get packages +RUN flutter clean +RUN flutter pub get +RUN flutter build web --release --output=build/tm_pwa + +# Stage 2 - Runtime with NGINX +FROM nginx:${NGINX} + +# Install runtime dependencies +RUN apk --no-cache add \ + curl \ + tzdata \ + ca-certificates \ + && mkdir -p /var/log/app \ + && chown nginx:nginx /var/log/app + +# Copy build files from Debian builder +COPY --from=builder /app/build/tm_pwa /usr/tm/nginx/html + +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file