|
1 | | -# |
2 | | -name: Create and publish a Docker image with tags |
| 1 | +name: Create and publish a Docker image |
3 | 2 |
|
4 | | -# Configures this workflow to run every time a change is pushed and have tags |
5 | 3 | on: |
6 | 4 | push: |
7 | 5 | tags: |
8 | 6 | - '*' |
9 | 7 |
|
10 | | -# Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds. |
11 | 8 | env: |
12 | 9 | REGISTRY: ghcr.io |
13 | | - #IMAGE_NAME: ${{ github.repository }} |
14 | | - IMAGE_NAME: ghcr.io/justcoded/docsify |
| 10 | + IMAGE_NAME: justcoded/docsify |
15 | 11 |
|
16 | | -# There is a single job in this workflow. It's configured to run on the latest available version of Ubuntu. |
17 | 12 | jobs: |
18 | 13 | build-and-push-image: |
19 | 14 | runs-on: ubuntu-latest |
20 | | - # Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job. |
21 | 15 | permissions: |
22 | 16 | contents: read |
23 | 17 | packages: write |
24 | | - # |
| 18 | + |
25 | 19 | steps: |
26 | 20 | - name: Checkout repository |
27 | 21 | uses: actions/checkout@v4 |
28 | | - # Uses the `docker/login-action` action to log in to the Container registry registry using the account and password that will publish the packages. Once published, the packages are scoped to the account defined here. |
| 22 | + |
| 23 | + - name: Set up QEMU |
| 24 | + uses: docker/setup-qemu-action@v3 |
| 25 | + |
| 26 | + - name: Set up Docker Buildx |
| 27 | + uses: docker/setup-buildx-action@v3 |
| 28 | + |
29 | 29 | - name: Log in to the Container registry |
30 | | - uses: docker/login-action@v4 |
| 30 | + uses: docker/login-action@v3 |
31 | 31 | with: |
32 | 32 | registry: ${{ env.REGISTRY }} |
33 | 33 | username: ${{ github.actor }} |
34 | 34 | password: ${{ secrets.GITHUB_TOKEN }} |
35 | | - # This step uses [docker/metadata-action](https://github.com/docker/metadata-action#about) to extract tags and labels that will be applied to the specified image. The `id` "meta" allows the output of this step to be referenced in a subsequent step. The `images` value provides the base name for the tags and labels. |
36 | | - - name: Extract metadata (tags, labels) for Docker |
| 35 | + |
| 36 | + - name: Extract metadata |
37 | 37 | id: meta |
38 | | - uses: docker/metadata-action@v6 |
| 38 | + uses: docker/metadata-action@v5 |
39 | 39 | with: |
40 | 40 | images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} |
41 | | - # This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages. |
42 | | - # It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository. |
43 | | - # It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step. |
| 41 | + tags: | |
| 42 | + type=ref,event=tag |
| 43 | + type=raw,value=latest |
| 44 | +
|
44 | 45 | - name: Build and push Docker image |
45 | | - uses: docker/build-push-action@v7 |
| 46 | + uses: docker/build-push-action@v6 |
46 | 47 | with: |
47 | 48 | context: . |
48 | 49 | push: true |
| 50 | + platforms: linux/amd64,linux/arm64 |
49 | 51 | tags: ${{ steps.meta.outputs.tags }} |
50 | 52 | labels: ${{ steps.meta.outputs.labels }} |
0 commit comments