fix: pipeline obtendo numero de versão incorreto pela branch. #4

Merged
ricardo merged 1 commits from feat/live-preview into Release/V0.0.3 2025-07-23 18:37:16 +00:00
3 changed files with 45 additions and 18 deletions

View File

@ -81,13 +81,27 @@ jobs:
id: extract_branch id: extract_branch
run: | run: |
BRANCH_NAME=${GITHUB_REF#refs/heads/} BRANCH_NAME=${GITHUB_REF#refs/heads/}
VERSION=${BRANCH_NAME#Release/} VERSION_RAW=${BRANCH_NAME#Release/}
# Remove 'V' prefix se existir
VERSION=$(echo "$VERSION_RAW" | sed 's/^[Vv]//')
# Se versão vazia, usar padrão
if [ -z "$VERSION" ]; then
VERSION="0.0.1"
fi
COMMIT_SHA=${GITHUB_SHA::7} COMMIT_SHA=${GITHUB_SHA::7}
echo "branch=$BRANCH_NAME" >> $GITHUB_OUTPUT echo "branch=$BRANCH_NAME" >> $GITHUB_OUTPUT
echo "version=$VERSION" >> $GITHUB_OUTPUT echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "commit=$COMMIT_SHA" >> $GITHUB_OUTPUT echo "commit=$COMMIT_SHA" >> $GITHUB_OUTPUT
echo "tag=$VERSION-$COMMIT_SHA" >> $GITHUB_OUTPUT echo "tag=$VERSION-$COMMIT_SHA" >> $GITHUB_OUTPUT
echo "📋 Branch: $BRANCH_NAME"
echo "📦 Version: $VERSION (from $VERSION_RAW)"
echo "🔑 Commit: $COMMIT_SHA"
- name: Build and push multi-arch Docker image - name: Build and push multi-arch Docker image
run: | run: |
echo "Building multi-arch image for platforms: linux/amd64,linux/arm64" echo "Building multi-arch image for platforms: linux/amd64,linux/arm64"

View File

@ -15,6 +15,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Scripts", "Scripts", "{02EA
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Pipeline", "Pipeline", "{3F3DEEDF-9E0A-434D-8130-1FBAC43FD1F7}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Pipeline", "Pipeline", "{3F3DEEDF-9E0A-434D-8130-1FBAC43FD1F7}"
ProjectSection(SolutionItems) = preProject ProjectSection(SolutionItems) = preProject
docker-compose.staging.yml = docker-compose.staging.yml
docker-compose.yml = docker-compose.yml
Dockerfile.release = Dockerfile.release
.gitea\workflows\release-deploy.yml = .gitea\workflows\release-deploy.yml .gitea\workflows\release-deploy.yml = .gitea\workflows\release-deploy.yml
EndProjectSection EndProjectSection
EndProject EndProject

View File

@ -1,9 +1,8 @@
# Dockerfile.release - Multi-architecture build for Release environment # Dockerfile.release - Multi-architecture build for Release environment
# Supports: linux/amd64, linux/arm64 # Supports: linux/amd64, linux/arm64
ARG BUILDPLATFORM=linux/amd64 ARG BUILDPLATFORM=linux/amd64
ARG TARGETPLATFORM ARG TARGETPLATFORM
ARG VERSION=unknown ARG VERSION=0.0.1
ARG COMMIT=unknown ARG COMMIT=unknown
# Base runtime image with multi-arch support # Base runtime image with multi-arch support
@ -33,21 +32,32 @@ ARG COMMIT
WORKDIR /src WORKDIR /src
# Copy project files and restore dependencies # Copy project file and restore dependencies
COPY ["src/BCards.Web/BCards.Web.csproj", "src/BCards.Web/"] COPY ["src/BCards.Web/BCards.Web.csproj", "src/BCards.Web/"]
RUN dotnet restore "src/BCards.Web/BCards.Web.csproj" \
--runtime $(echo $TARGETPLATFORM | tr '/' '-') # CORREÇÃO: Mapear plataforma para RID correto do .NET
RUN case "$TARGETPLATFORM" in \
"linux/amd64") RID="linux-x64" ;; \
"linux/arm64") RID="linux-arm64" ;; \
*) echo "Unsupported platform: $TARGETPLATFORM" && exit 1 ;; \
esac && \
echo "🏗️ Building for platform: $TARGETPLATFORM -> RID: $RID" && \
dotnet restore "src/BCards.Web/BCards.Web.csproj" --runtime $RID
# Copy source code # Copy source code
COPY . . COPY . .
WORKDIR "/src/src/BCards.Web" WORKDIR "/src/src/BCards.Web"
# Build application with Release configuration # Build application with Release configuration
RUN dotnet build "BCards.Web.csproj" \ RUN case "$TARGETPLATFORM" in \
"linux/amd64") RID="linux-x64" ;; \
"linux/arm64") RID="linux-arm64" ;; \
esac && \
dotnet build "BCards.Web.csproj" \
-c Release \ -c Release \
-o /app/build \ -o /app/build \
--no-restore \ --no-restore \
--runtime $(echo $TARGETPLATFORM | tr '/' '-') \ --runtime $RID \
-p:Version=$VERSION \ -p:Version=$VERSION \
-p:InformationalVersion=$COMMIT -p:InformationalVersion=$COMMIT
@ -57,12 +67,16 @@ ARG TARGETPLATFORM
ARG VERSION ARG VERSION
ARG COMMIT ARG COMMIT
RUN dotnet publish "BCards.Web.csproj" \ RUN case "$TARGETPLATFORM" in \
"linux/amd64") RID="linux-x64" ;; \
"linux/arm64") RID="linux-arm64" ;; \
esac && \
dotnet publish "BCards.Web.csproj" \
-c Release \ -c Release \
-o /app/publish \ -o /app/publish \
--no-restore \ --no-restore \
--no-build \ --no-build \
--runtime $(echo $TARGETPLATFORM | tr '/' '-') \ --runtime $RID \
--self-contained false \ --self-contained false \
-p:PublishReadyToRun=true \ -p:PublishReadyToRun=true \
-p:PublishSingleFile=false \ -p:PublishSingleFile=false \
@ -72,7 +86,7 @@ RUN dotnet publish "BCards.Web.csproj" \
# Final stage - runtime optimized for Release environment # Final stage - runtime optimized for Release environment
FROM base AS final FROM base AS final
ARG VERSION=unknown ARG VERSION=0.0.1
ARG COMMIT=unknown ARG COMMIT=unknown
ARG TARGETPLATFORM ARG TARGETPLATFORM
@ -90,8 +104,7 @@ COPY --from=publish /app/publish .
# Create non-root user for security # Create non-root user for security
RUN groupadd -r bcards && useradd -r -g bcards bcards \ RUN groupadd -r bcards && useradd -r -g bcards bcards \
&& chown -R bcards:bcards /app \ && chown -R bcards:bcards /app
&& chmod +x /app/BCards.Web.dll
# Environment variables for Release # Environment variables for Release
ENV ASPNETCORE_ENVIRONMENT=Release ENV ASPNETCORE_ENVIRONMENT=Release
@ -118,6 +131,3 @@ USER bcards
# Entry point with optimized runtime settings # Entry point with optimized runtime settings
ENTRYPOINT ["dotnet", "BCards.Web.dll"] ENTRYPOINT ["dotnet", "BCards.Web.dll"]
# Runtime configuration for better performance
CMD ["--urls", "http://0.0.0.0:8080"]