11name : Busted test suite
22
3- on : [push, pull_request]
3+ on :
4+ push :
5+ pull_request :
6+ release :
7+ types : [published]
48
59jobs :
610 build-and-test :
1721 - name : Set up Docker Buildx
1822 uses : docker/setup-buildx-action@v3
1923
20- - name : Extract container metadata
21- id : meta
24+ - name : Extract GHCR metadata
25+ id : ghcr_meta
2226 if : github.event_name == 'push' && github.repository == 'koreader/koreader-sync-server'
2327 uses : docker/metadata-action@v5
2428 with :
@@ -28,13 +32,24 @@ jobs:
2832 type=ref,event=tag
2933 type=sha,prefix=sha-
3034
35+ - name : Extract Docker Hub metadata
36+ id : dockerhub_meta
37+ if : (startsWith(github.ref, 'refs/tags/') || github.event_name == 'release') && github.repository == 'koreader/koreader-sync-server'
38+ uses : docker/metadata-action@v5
39+ with :
40+ images : koreader/kosync
41+ tags : |
42+ type=ref,event=tag
43+ type=raw,value=${{ github.event.release.tag_name }},enable=${{ github.event_name == 'release' }}
44+ type=raw,value=latest,enable=${{ github.event_name == 'release' }}
45+
3146 - name : Build image
3247 uses : docker/build-push-action@v5
3348 with :
3449 context : .
3550 push : false
3651 load : true
37- labels : ${{ steps.meta .outputs.labels }}
52+ labels : ${{ steps.ghcr_meta.outputs.labels || steps.dockerhub_meta .outputs.labels }}
3853 tags : |
3954 koreader/kosync:test
4055 koreader/kosync:latest
6580 docker tag koreader/kosync:test "$tag"
6681 docker push "$tag"
6782 done <<'EOF'
68- ${{ steps.meta.outputs.tags }}
83+ ${{ steps.ghcr_meta.outputs.tags }}
84+ EOF
85+
86+ - name : Log in to Docker Hub
87+ if : (startsWith(github.ref, 'refs/tags/') || github.event_name == 'release') && github.repository == 'koreader/koreader-sync-server'
88+ uses : docker/login-action@v3
89+ with :
90+ username : koreader
91+ password : ${{ secrets.DOCKERHUB_TOKEN }}
92+
93+ - name : Push Docker Hub image
94+ if : (startsWith(github.ref, 'refs/tags/') || github.event_name == 'release') && github.repository == 'koreader/koreader-sync-server'
95+ run : |
96+ while IFS= read -r tag; do
97+ docker tag koreader/kosync:test "$tag"
98+ docker push "$tag"
99+ done <<'EOF'
100+ ${{ steps.dockerhub_meta.outputs.tags }}
69101 EOF
0 commit comments