|
9 | 9 | denops_version: |
10 | 10 | description: Denops version |
11 | 11 | required: false |
12 | | - default: "main" |
13 | 12 |
|
14 | 13 | jobs: |
15 | 14 | build: |
16 | 15 | runs-on: ubuntu-latest |
17 | 16 | steps: |
18 | 17 | - uses: actions/checkout@v4 |
| 18 | + - uses: docker/setup-qemu-action@v3 |
19 | 19 | - uses: docker/setup-buildx-action@v3 |
20 | 20 | - uses: docker/login-action@v3 |
21 | 21 | with: |
22 | 22 | registry: ghcr.io |
23 | 23 | username: ${{ github.actor }} |
24 | 24 | password: ${{ secrets.GITHUB_TOKEN }} |
25 | | - - name: Get DENOPS_VERSION |
| 25 | + |
| 26 | + - name: Construct variables |
26 | 27 | id: vars |
27 | 28 | run: | |
28 | 29 | if [[ -z "${{ github.event.inputs.denops_version }}" ]]; then |
29 | 30 | echo 'DENOPS_VERSION=main' >> $GITHUB_OUTPUT |
30 | 31 | else |
31 | 32 | echo 'DENOPS_VERSION=${{ github.event.inputs.denops_version }}' >> $GITHUB_OUTPUT |
32 | 33 | fi |
33 | | - shell: bash |
34 | | - |
35 | | - - name: Build and Push to ghcr.io |
36 | | - env: |
37 | | - DENOPS_VERSION: ${{ steps.vars.outputs.DENOPS_VERSION }} |
38 | | - shell: bash |
39 | | - run: | |
40 | | - make DENOPS_VERSION=$DENOPS_VERSION build |
41 | 34 | if [[ $DENOPS_VERSION == v* ]]; then |
42 | | - # Full version string |
43 | | - make DOCKER_TAG=$DENOPS_VERSION push |
| 35 | + echo "DOCKER_TAG=$DENOPS_VERSION" >> $GITHUB_OUTPUT |
44 | 36 | # vX.Y.Z -> vX.Y (major and minor) |
45 | | - export DOCKER_TAG_MINOR=$(echo $DENOPS_VERSION | sed -r 's/(v[0-9]+)(\.[0-9]+)(\.[0-9]+)/\1\2/') |
46 | | - make DOCKER_TAG=$DOCKER_TAG_MINOR push |
| 37 | + echo "DOCKER_TAG_MINOR=$(echo $DENOPS_VERSION | sed -r 's/(v[0-9]+)(\.[0-9]+)(\.[0-9]+)/\1\2/')" >> $GITHUB_OUTPUT |
47 | 38 | # vX.Y.Z -> vX (major only) |
48 | | - export DOCKER_TAG_MAJOR=$(echo $DENOPS_VERSION | sed -r 's/(v[0-9]+)(\.[0-9]+)(\.[0-9]+)/\1/') |
49 | | - make DOCKER_TAG=$DOCKER_TAG_MAJOR push |
| 39 | + echo "DOCKER_TAG_MAJOR=$(echo $DENOPS_VERSION | sed -r 's/(v[0-9]+)(\.[0-9]+)(\.[0-9]+)/\1/')" >> $GITHUB_OUTPUT |
| 40 | + else |
| 41 | + echo "DOCKER_TAG=latest" >> $GITHUB_OUTPUT |
| 42 | + echo "DOCKER_TAG_MINOR=latest" >> $GITHUB_OUTPUT |
| 43 | + echo "DOCKER_TAG_MAJOR=latest" >> $GITHUB_OUTPUT |
50 | 44 | fi |
51 | | - make DOCKER_TAG=latest push |
| 45 | + shell: bash |
| 46 | + |
| 47 | + - name: Build and push Docker image (Vim) |
| 48 | + uses: docker/build-push-action@v6 |
| 49 | + with: |
| 50 | + file: ./dockerfiles/vim |
| 51 | + tags: |
| 52 | + - ghcr.io/vim-denops/vim:latest |
| 53 | + - ghcr.io/vim-denops/vim:${{ steps.vars.outputs.DOCKER_TAG }} |
| 54 | + - ghcr.io/vim-denops/vim:${{ steps.vars.outputs.DOCKER_TAG_MINOR }} |
| 55 | + - ghcr.io/vim-denops/vim:${{ steps.vars.outputs.DOCKER_TAG_MAJOR }} |
| 56 | + cache-from: | |
| 57 | + ghcr.io/vim-denops/vim/cache |
| 58 | + ghcr.io/vim-denops/vim |
| 59 | + cache-to: | |
| 60 | + type=registry,ref=ghcr.io/vim-denops/vim/cache,mode=max |
| 61 | + context: . |
| 62 | + platforms: |
| 63 | + - linux/amd64 |
| 64 | + - linux/arm64 |
| 65 | + push: true |
| 66 | + |
| 67 | + - name: Build and push Docker image (Neovim) |
| 68 | + uses: docker/build-push-action@v6 |
| 69 | + with: |
| 70 | + file: ./dockerfiles/neovim |
| 71 | + tags: |
| 72 | + - ghcr.io/vim-denops/neovim:latest |
| 73 | + - ghcr.io/vim-denops/neovim:${{ steps.vars.outputs.DOCKER_TAG }} |
| 74 | + - ghcr.io/vim-denops/neovim:${{ steps.vars.outputs.DOCKER_TAG_MINOR }} |
| 75 | + - ghcr.io/vim-denops/neovim:${{ steps.vars.outputs.DOCKER_TAG_MAJOR }} |
| 76 | + cache-from: | |
| 77 | + ghcr.io/vim-denops/neovim/cache |
| 78 | + ghcr.io/vim-denops/neovim |
| 79 | + cache-to: | |
| 80 | + type=registry,ref=ghcr.io/vim-denops/neovim/cache,mode=max |
| 81 | + context: . |
| 82 | + platforms: |
| 83 | + - linux/amd64 |
| 84 | + - linux/arm64 |
| 85 | + push: true |
0 commit comments