diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index d4a347c..d099ba8 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -1,13 +1,9 @@ name: BuildApp on: - # push: - # branches: [ main ] - # pull_request: - #branches: [ main ] workflow_dispatch: {} -# (opcjonalnie) ogranicz równoległe runy +# (opcjonalnie; jeśli coś krzyczy w Twojej wersji Gitei, usuń całą sekcję concurrency) concurrency: group: build-${{ github.ref }} cancel-in-progress: false @@ -24,14 +20,11 @@ jobs: with: node-version: 20 - # Zostawiamy jak u Ciebie, jeśli chcesz – można też użyć corepack (pnpm) zamiast global install - name: Install Angular CLI run: npm install -g @angular/cli - name: Install PNPM run: npm install -g pnpm - # alternatywa: - # run: corepack enable && corepack prepare pnpm@latest --activate - name: Install dependencies working-directory: src/Frontend @@ -45,8 +38,7 @@ jobs: uses: https://github.com/actions/upload-artifact@v3 with: name: frontend - path: | - src/Frontend/dist + path: src/Frontend/dist if-no-files-found: error retention-days: 7 @@ -124,28 +116,41 @@ jobs: if-no-files-found: error retention-days: 7 - copy-artifacts: + store-artifacts: runs-on: ubuntu-latest - - name: Upload artifact - uses: actions/upload-artifact@v3 + needs: [build-frontend, build-backend] + if: ${{ success() }} + steps: + - name: Download frontend artifacts + uses: https://github.com/actions/download-artifact@v3 + with: + name: frontend + path: frontend + + - name: Download webapi artifacts + uses: https://github.com/actions/download-artifact@v3 with: name: webapi - path: build/webapi + path: webapi - name: Store artifacts locally on runner - if: success() + env: + BUILD_DIR: /runner-cache/builds/${{ github.run_id }} run: | - BUILD_DIR="/runner-cache/builds/$GITHUB_RUN_ID" + set -euo pipefail mkdir -p "$BUILD_DIR" - - cp -r build/webapi/ "$BUILD_DIR/" - cp -r src/Frontend/dist/ "$BUILD_DIR/frontend/" - + cp -r webapi "$BUILD_DIR/" + cp -r frontend "$BUILD_DIR/" + mkdir -p /runner-cache/builds ln -sfn "$BUILD_DIR" /runner-cache/builds/latest - - echo "BUILD_TIME=$(date -Iseconds)" > "$BUILD_DIR/build-info.txt" - echo "COMMIT_SHA=${GITHUB_SHA}" >> "$BUILD_DIR/build-info.txt" - echo "BRANCH=${GITHUB_REF_NAME}" >> "$BUILD_DIR/build-info.txt" - echo "BUILD_ID=${GITHUB_RUN_ID}" >> "$BUILD_DIR/build-info.txt" - - ls -la "$BUILD_DIR/" \ No newline at end of file + + { + echo "BUILD_TIME=$(date -Iseconds)" + echo "COMMIT_SHA=${GITHUB_SHA}" + echo "BRANCH=${GITHUB_REF_NAME}" + echo "BUILD_ID=${GITHUB_RUN_ID}" + } > "$BUILD_DIR/build-info.txt" + + echo "Build artifacts stored in: $BUILD_DIR" + ls -la "$BUILD_DIR/" + echo "Symlink 'latest' -> $(readlink -f /runner-cache/builds/latest)" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 24abb32..5f7ca42 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,21 +1,21 @@ name: BuildApp - on: - workflow_dispatch: {} - -concurrency: - group: build-${{ github.ref }} - cancel-in-progress: false + push: + branches: + - main + pull_request: + branches: + - main + workflow_dispatch: jobs: build-frontend: runs-on: ubuntu-latest steps: - - name: Checkout - uses: https://github.com/actions/checkout@v4 + - uses: actions/checkout@v4 - name: Use Node.js 20 - uses: https://github.com/actions/setup-node@v4 + uses: actions/setup-node@v4 with: node-version: 20 @@ -33,22 +33,19 @@ jobs: working-directory: src/Frontend run: ng build --configuration=production - - name: Upload artifact (frontend) - uses: https://github.com/actions/upload-artifact@v3 + - name: Upload artifact + uses: actions/upload-artifact@v4 with: name: frontend path: src/Frontend/dist - if-no-files-found: error - retention-days: 7 build-backend: runs-on: ubuntu-latest steps: - - name: Checkout - uses: https://github.com/actions/checkout@v4 + - uses: actions/checkout@v4 - name: Setup .NET 8 - uses: https://github.com/actions/setup-dotnet@v4 + uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x @@ -59,12 +56,13 @@ jobs: - name: Build solution and prepare plugins working-directory: src/Backend run: | - set -e dotnet build DiunaBI.sln --configuration Release dotnet build DiunaBI.Plugins.Morska/DiunaBI.Plugins.Morska.csproj --configuration Release + # Przygotuj katalog dla testów mkdir -p DiunaBI.Tests/bin/Release/net8.0/Plugins cp DiunaBI.Plugins.Morska/bin/Release/net8.0/DiunaBI.Plugins.Morska.dll DiunaBI.Tests/bin/Release/net8.0/Plugins/ cp DiunaBI.Plugins.Morska/bin/Release/net8.0/DiunaBI.Core.dll DiunaBI.Tests/bin/Release/net8.0/Plugins/ + echo "✅ Plugins copied to test directory:" ls -la DiunaBI.Tests/bin/Release/net8.0/Plugins/ - name: Run Tests @@ -79,14 +77,13 @@ jobs: --filter "Category!=LocalOnly" - name: Publish Test Results - uses: https://github.com/actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: success() || failure() with: name: test-results path: | src/Backend/DiunaBI.Tests/TestResults/*.trx src/Backend/DiunaBI.Tests/TestResults/**/coverage.cobertura.xml - retention-days: 7 - name: Publish WebAPI if: success() @@ -97,56 +94,20 @@ jobs: --framework net8.0 \ --self-contained false \ --output ../../build/webapi + # Kopiuj pluginy do katalogu webapi mkdir -p ../../build/webapi/Plugins cp DiunaBI.Plugins.Morska/bin/Release/net8.0/DiunaBI.Plugins.Morska.dll ../../build/webapi/Plugins/ + echo "✅ Plugins copied to webapi:" ls -la ../../build/webapi/Plugins/ - name: Clean up sensitive files working-directory: build/webapi run: | - rm -f appsettings.Development.json || true - rm -f client_secrets.Development.json || true + rm -f appsettings.Development.json + rm -f client_secrets.Development.json - - name: Upload artifact (webapi) - uses: https://github.com/actions/upload-artifact@v3 + - name: Upload artifact + uses: actions/upload-artifact@v4 with: name: webapi - path: build/webapi - if-no-files-found: error - retention-days: 7 - - store-artifacts: - runs-on: ubuntu-latest - needs: [build-frontend, build-backend] - if: success() - steps: - - name: Download frontend artifacts - uses: https://github.com/actions/download-artifact@v3 - with: - name: frontend - path: frontend - - - name: Download webapi artifacts - uses: https://github.com/actions/download-artifact@v3 - with: - name: webapi - path: webapi - - - name: Store artifacts locally on runner - run: | - BUILD_DIR="/runner-cache/builds/$GITHUB_RUN_ID" - mkdir -p "$BUILD_DIR" - - cp -r webapi/ "$BUILD_DIR/" - cp -r frontend/ "$BUILD_DIR/" - - mkdir -p /runner-cache/builds - ln -sfn "$BUILD_DIR" /runner-cache/builds/latest - - echo "BUILD_TIME=$(date -Iseconds)" > "$BUILD_DIR/build-info.txt" - echo "COMMIT_SHA=${GITHUB_SHA}" >> "$BUILD_DIR/build-info.txt" - echo "BRANCH=${GITHUB_REF_NAME}" >> "$BUILD_DIR/build-info.txt" - echo "BUILD_ID=${GITHUB_RUN_ID}" >> "$BUILD_DIR/build-info.txt" - - echo "Build artifacts stored in: $BUILD_DIR" - ls -la "$BUILD_DIR/" \ No newline at end of file + path: build/webapi \ No newline at end of file