|
1 | 1 | name: Build and publish release packages |
2 | 2 | permissions: |
3 | 3 | contents: write |
| 4 | + packages: write |
4 | 5 | on: |
5 | 6 | release: |
6 | 7 | # 'published' is triggered when publishing draft release, 'created' is not |
@@ -255,9 +256,8 @@ jobs: |
255 | 256 | bin: vectorizer-cli |
256 | 257 | token: ${{ secrets.GITHUB_TOKEN }} |
257 | 258 |
|
258 | | - # Docker só roda após dashboard + binários para Docker + build do backend (release) ok. |
259 | | - # Uma tag (version + latest), manifesto multi-plataforma (linux/amd64 + linux/arm64). |
260 | | - # Requer secrets: DOCKERHUB_USERNAME, DOCKERHUB_TOKEN. |
| 259 | + # Docker: multi-platform image pushed to GitHub Container Registry (ghcr.io). |
| 260 | + # Zero secrets — usa GITHUB_TOKEN automático. |
261 | 261 | publish-docker: |
262 | 262 | needs: |
263 | 263 | - build-dashboard |
@@ -285,22 +285,31 @@ jobs: |
285 | 285 | uses: docker/setup-buildx-action@v3 |
286 | 286 | - name: Set version from tag |
287 | 287 | id: version |
288 | | - run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT |
289 | | - - name: Login to Docker Hub |
| 288 | + run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> "$GITHUB_OUTPUT" |
| 289 | + - name: Login to GitHub Container Registry |
290 | 290 | uses: docker/login-action@v3 |
291 | 291 | with: |
292 | | - username: ${{ secrets.DOCKERHUB_USERNAME }} |
293 | | - password: ${{ secrets.DOCKERHUB_TOKEN }} |
| 292 | + registry: ghcr.io |
| 293 | + username: ${{ github.repository_owner }} |
| 294 | + password: ${{ secrets.GITHUB_TOKEN }} |
| 295 | + - name: Docker metadata (tags + labels) |
| 296 | + id: meta |
| 297 | + uses: docker/metadata-action@v5 |
| 298 | + with: |
| 299 | + images: ghcr.io/${{ github.repository }} |
| 300 | + tags: | |
| 301 | + type=semver,pattern={{version}} |
| 302 | + type=semver,pattern={{major}}.{{minor}} |
| 303 | + type=raw,value=latest,enable={{is_default_branch}} |
294 | 304 | - name: Build and push Docker image (from artifacts) |
295 | 305 | uses: docker/build-push-action@v6 |
296 | 306 | with: |
297 | 307 | context: . |
298 | 308 | file: ./Dockerfile.artifacts |
299 | 309 | push: true |
300 | 310 | platforms: linux/amd64,linux/arm64 |
301 | | - tags: | |
302 | | - ${{ secrets.DOCKERHUB_USERNAME }}/vectorizer:${{ steps.version.outputs.VERSION }} |
303 | | - ${{ secrets.DOCKERHUB_USERNAME }}/vectorizer:latest |
| 311 | + tags: ${{ steps.meta.outputs.tags }} |
| 312 | + labels: ${{ steps.meta.outputs.labels }} |
304 | 313 | build-args: | |
305 | 314 | GIT_COMMIT_ID=${{ steps.version.outputs.VERSION }} |
306 | 315 | BUILD_DATE=${{ github.event.release.published_at }} |
|
0 commit comments