fix: pipeline obtendo numero de versão incorreto pela branch. #4
@ -81,13 +81,27 @@ jobs:
|
||||
id: extract_branch
|
||||
run: |
|
||||
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}
|
||||
|
||||
echo "branch=$BRANCH_NAME" >> $GITHUB_OUTPUT
|
||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||
echo "commit=$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
|
||||
run: |
|
||||
echo "Building multi-arch image for platforms: linux/amd64,linux/arm64"
|
||||
|
||||
@ -15,6 +15,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Scripts", "Scripts", "{02EA
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Pipeline", "Pipeline", "{3F3DEEDF-9E0A-434D-8130-1FBAC43FD1F7}"
|
||||
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
|
||||
EndProjectSection
|
||||
EndProject
|
||||
|
||||
@ -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
|
||||
|
||||
ARG BUILDPLATFORM=linux/amd64
|
||||
ARG TARGETPLATFORM
|
||||
ARG VERSION=unknown
|
||||
ARG VERSION=0.0.1
|
||||
ARG COMMIT=unknown
|
||||
|
||||
# Base runtime image with multi-arch support
|
||||
@ -33,21 +32,32 @@ ARG COMMIT
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
# Copy project files and restore dependencies
|
||||
# Copy project file and restore dependencies
|
||||
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 . .
|
||||
WORKDIR "/src/src/BCards.Web"
|
||||
|
||||
# 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 \
|
||||
-o /app/build \
|
||||
--no-restore \
|
||||
--runtime $(echo $TARGETPLATFORM | tr '/' '-') \
|
||||
--runtime $RID \
|
||||
-p:Version=$VERSION \
|
||||
-p:InformationalVersion=$COMMIT
|
||||
|
||||
@ -57,12 +67,16 @@ ARG TARGETPLATFORM
|
||||
ARG VERSION
|
||||
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 \
|
||||
-o /app/publish \
|
||||
--no-restore \
|
||||
--no-build \
|
||||
--runtime $(echo $TARGETPLATFORM | tr '/' '-') \
|
||||
--runtime $RID \
|
||||
--self-contained false \
|
||||
-p:PublishReadyToRun=true \
|
||||
-p:PublishSingleFile=false \
|
||||
@ -72,7 +86,7 @@ RUN dotnet publish "BCards.Web.csproj" \
|
||||
|
||||
# Final stage - runtime optimized for Release environment
|
||||
FROM base AS final
|
||||
ARG VERSION=unknown
|
||||
ARG VERSION=0.0.1
|
||||
ARG COMMIT=unknown
|
||||
ARG TARGETPLATFORM
|
||||
|
||||
@ -90,8 +104,7 @@ COPY --from=publish /app/publish .
|
||||
|
||||
# Create non-root user for security
|
||||
RUN groupadd -r bcards && useradd -r -g bcards bcards \
|
||||
&& chown -R bcards:bcards /app \
|
||||
&& chmod +x /app/BCards.Web.dll
|
||||
&& chown -R bcards:bcards /app
|
||||
|
||||
# Environment variables for Release
|
||||
ENV ASPNETCORE_ENVIRONMENT=Release
|
||||
@ -118,6 +131,3 @@ USER bcards
|
||||
|
||||
# Entry point with optimized runtime settings
|
||||
ENTRYPOINT ["dotnet", "BCards.Web.dll"]
|
||||
|
||||
# Runtime configuration for better performance
|
||||
CMD ["--urls", "http://0.0.0.0:8080"]
|
||||
Loading…
Reference in New Issue
Block a user