|
6 | 6 | - "*-?v[0-9]+*"
|
7 | 7 |
|
8 | 8 | env:
|
9 |
| - REGISTRY: ghcr.io |
| 9 | + GHCR_REGISTRY: ghcr.io |
10 | 10 |
|
11 | 11 | permissions:
|
12 | 12 | contents: write
|
@@ -73,35 +73,49 @@ jobs:
|
73 | 73 | - name: Set up Docker Buildx
|
74 | 74 | uses: docker/setup-buildx-action@v3
|
75 | 75 |
|
76 |
| - - name: Log in to the container registry |
| 76 | + - name: Log in to the ghcr container registry |
77 | 77 | uses: docker/login-action@v3
|
78 | 78 | with:
|
79 |
| - registry: ${{ env.REGISTRY }} |
| 79 | + registry: ${{ env.GHCR_REGISTRY }} |
80 | 80 | username: ${{ github.actor }}
|
81 | 81 | password: ${{ secrets.GITHUB_TOKEN }}
|
82 | 82 |
|
| 83 | + - name: Log in to the docker hub container registry |
| 84 | + uses: docker/login-action@v3 |
| 85 | + with: |
| 86 | + username: ${{ secrets.DOCKER_USERNAME }} |
| 87 | + password: ${{ secrets.DOCKER_TOKEN }} |
| 88 | + |
83 | 89 | - name: Get docker image names
|
84 | 90 | id: required_args
|
85 | 91 | uses: actions/github-script@v7
|
| 92 | + env: |
| 93 | + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} |
86 | 94 | with:
|
87 | 95 | script: |
|
| 96 | + const repoName = context.payload.repository.name; |
| 97 | + const refName = context.ref.replace('refs/tags/', ''); |
| 98 | + const dockerHubActor = process.env.DOCKER_USERNAME; |
| 99 | + const ghcrRegistry = process.env.GHCR_REGISTRY; |
| 100 | + const ghcrActor = context.actor; |
| 101 | +
|
88 | 102 | function generateVersionArray(version) {
|
89 | 103 | const parts = version.split(".");
|
90 |
| - let versionArray = []; |
| 104 | + const versionArray = []; |
91 | 105 | for (let i = 0; i < parts.length; i++)
|
92 | 106 | versionArray.push(parts.slice(0, i + 1).join("."));
|
93 | 107 | versionArray.push("latest");
|
94 | 108 | return versionArray;
|
95 | 109 | }
|
96 | 110 |
|
97 |
| - const registry = process.env.REGISTRY; |
98 |
| - const actor = context.actor; |
99 |
| - const repoName = context.payload.repository.name; |
100 |
| - const refName = context.ref.replace('refs/tags/', ''); |
101 |
| - const imageName = `${registry}/${actor}/${repoName}`; |
102 | 111 | const versionTags = generateVersionArray(refName);
|
103 |
| - const tags = versionTags.map(tag => `${imageName}:${tag}`); |
104 |
| - const imageNames = tags.join(',').toLowerCase(); |
| 112 | + const ghcrImageName = `${ghcrRegistry}/${ghcrActor}/${repoName}`; |
| 113 | + const ghcrTags = versionTags.map((tag) => `${ghcrImageName}:${tag}`); |
| 114 | +
|
| 115 | + const dockerHubImageName = `${dockerHubActor}/${repoName}`; |
| 116 | + const dockerHubTags = versionTags.map((tag) => `${dockerHubImageName}:${tag}`); |
| 117 | +
|
| 118 | + const imageNames = [...ghcrTags, dockerHubTags].join(",").toLowerCase(); |
105 | 119 | core.setOutput('image_names', imageNames);
|
106 | 120 |
|
107 | 121 | - name: Build and push to ghcr
|
|
0 commit comments