Bump version to v0.28.17 #106
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| on: | |
| push: | |
| tags: | |
| - "v*.*.*" | |
| workflow_dispatch: | |
| name: Build Docker images with Sentry | |
| permissions: | |
| contents: read | |
| packages: write | |
| id-token: write | |
| jobs: | |
| build-release-image-with-sentry: | |
| name: Build release image with Sentry | |
| if: github.event_name == 'workflow_dispatch' || (github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/v')) | |
| runs-on: ubuntu-latest | |
| environment: prod | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Extract app version from pubspec.yaml | |
| id: app_version | |
| run: | | |
| VERSION=$(grep '^version:' pubspec.yaml | awk '{print $2}') | |
| echo "version=$VERSION" >> "$GITHUB_OUTPUT" | |
| - name: Docker metadata | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: | | |
| ${{ github.repository_owner }}/tmail-web | |
| ghcr.io/${{ github.repository_owner }}/tmail-web | |
| tags: | | |
| type=ref,event=tag | |
| type=raw,value=release | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build and push image (release) | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| file: ./Dockerfile | |
| push: true | |
| platforms: linux/amd64,linux/arm64 | |
| cache-from: | | |
| type=gha | |
| cache-to: | | |
| type=gha | |
| build-args: | | |
| FLUTTER_VERSION=3.38.9 | |
| SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} | |
| SENTRY_ORG=${{ secrets.SENTRY_ORG }} | |
| SENTRY_PROJECT=${{ secrets.SENTRY_PROJECT }} | |
| SENTRY_URL=${{ secrets.SENTRY_URL }} | |
| SENTRY_RELEASE=${{ steps.app_version.outputs.version }} | |
| GITHUB_SHA=${{ github.sha }} | |
| VCS_REF=${{ github.repository }}@${{ github.sha }} | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| - name: Extract sourcemaps from Docker image | |
| if: always() | |
| run: | | |
| # Get the first image tag (for amd64 platform) | |
| IMAGE_TAG=$(echo "${{ steps.meta.outputs.tags }}" | head -n1) | |
| if [ -z "$IMAGE_TAG" ]; then | |
| echo "No image tag found, skipping sourcemap extraction" | |
| exit 0 | |
| fi | |
| echo "Extracting sourcemaps from image: $IMAGE_TAG" | |
| # Create temporary container to extract files | |
| CONTAINER_ID=$(docker create --platform linux/amd64 "$IMAGE_TAG" 2>/dev/null | head -n1) | |
| if [ -n "$CONTAINER_ID" ]; then | |
| echo "Created container: $CONTAINER_ID" | |
| # Create directory for sourcemaps | |
| mkdir -p sourcemaps | |
| # Copy all files from container | |
| docker cp "$CONTAINER_ID:/usr/share/nginx/html/." sourcemaps/ 2>/dev/null || true | |
| # Remove container | |
| docker rm "$CONTAINER_ID" 2>/dev/null || true | |
| # Filter only .map files and keep directory structure | |
| find sourcemaps -type f ! -name "*.map" -delete 2>/dev/null || true | |
| echo "Sourcemaps extracted:" | |
| find sourcemaps -name "*.map" | head -10 || echo "No .map files found" | |
| MAP_COUNT=$(find sourcemaps -name "*.map" 2>/dev/null | wc -l) | |
| echo "Total .map files: $MAP_COUNT" | |
| else | |
| echo "Warning: Could not create container from image" | |
| fi | |
| - name: Upload sourcemaps as artifact | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: sourcemaps-${{ steps.app_version.outputs.version }} | |
| path: sourcemaps/**/*.map | |
| retention-days: 30 | |
| if-no-files-found: warn |