Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 12 additions & 14 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,21 +35,20 @@ jobs:
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build main sliding sync image
if: github.ref_name == 'main'
id: docker_build_sliding_sync
uses: docker/build-push-action@v4
- name: Generate docker image tags
id: metadata
uses: docker/metadata-action@v5
with:
cache-from: type=gha
cache-to: type=gha,mode=max
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We seem to lose the caching..?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like this diff is just because i merged them into the one docker/build-push-action@v4

Though that being said, i think the if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') should be removed so its always pushing an email? or did you only want images pushed for releases? its been a few weeks.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No wait yes, the if: should be removed so it always builds the image, but maybe the push: true could be made into a conditional so only pushes the result sometimes?

context: .
platforms: ${{ env.PLATFORMS }}
push: true
images: |
name=ghcr.io/${{ github.repository_owner }}/${{ github.repository }}
tags: |
ghcr.io/${{ env.GHCR_NAMESPACE }}/sliding-sync:main
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{raw}}
type=sha
type=raw,value=latest,enable=${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}

- name: Build release Sliding Sync image
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
id: docker_build_sliding_sync_release
uses: docker/build-push-action@v4
with:
Expand All @@ -58,9 +57,8 @@ jobs:
context: .
platforms: ${{ env.PLATFORMS }}
push: true
tags: |
ghcr.io/${{ env.GHCR_NAMESPACE }}/sliding-sync:latest
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We seem to be losing the :latest tag..?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So the latest tag is no longer specified by docker/build-push-action@v4, but a list of tags (in this case I think only one) is created by docker/metadata-action@v5

See

${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')) && 'type=raw,value=latest' }}

It'll create main on main branch, latest on release, and then always a sha specific tag

ghcr.io/${{ env.GHCR_NAMESPACE }}/sliding-sync:${{ github.ref_name }}
tags: ${{ steps.metadata.outputs.tags }}
labels: ${{ steps.metadata.outputs.labels }}

- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
Expand Down