forked from CosmosContracts/juno
-
Notifications
You must be signed in to change notification settings - Fork 0
75 lines (72 loc) · 2.63 KB
/
push-docker-images.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# This workflow pushes new juno docker images on every new tag.
#
# On every new `vX.Y.Z` tag the following images are pushed:
#
# cosmoscontracts/juno:vX.Y.Z # is pushed
# cosmoscontracts/juno:X.Y.Z # is pushed
# cosmoscontracts/juno:X.Y # is updated to X.Y.Z
# cosmoscontracts/juno:X # is updated to X.Y.Z
# cosmoscontracts/juno:latest # is updated to X.Y.Z
#
# cosmoscontracts/juno-e2e:vX.Y.Z # is pushed
# cosmoscontracts/juno-e2e:X.Y.Z # is pushed
# cosmoscontracts/juno-e2e:X.Y # is updated to X.Y.Z
# cosmoscontracts/juno-e2e:X # is updated to X.Y.Z
# cosmoscontracts/juno-e2e:latest # is updated to X.Y.Z
#
# All the images above have support for linux/amd64 and linux/arm64.
#
# Due to QEMU virtualization used to build multi-platform docker images
# this workflow might take a while to complete.
name: Push Docker Images
on:
release:
types: [published, created, edited]
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+' # ignore rc
jobs:
juno-images:
runs-on: ubuntu-latest
steps:
-
name: Check out the repo
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Parse tag
id: tag
run: |
VERSION=$(echo ${{ github.ref_name }} | sed "s/v//")
MAJOR_VERSION=$(echo $VERSION | cut -d '.' -f 1)
MINOR_VERSION=$(echo $VERSION | cut -d '.' -f 2)
PATCH_VERSION=$(echo $VERSION | cut -d '.' -f 3)
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "MAJOR_VERSION=$MAJOR_VERSION" >> $GITHUB_ENV
echo "MINOR_VERSION=$MINOR_VERSION" >> $GITHUB_ENV
echo "PATCH_VERSION=$PATCH_VERSION" >> $GITHUB_ENV
-
name: Build and push
id: build_push_image
uses: docker/build-push-action@v5
with:
file: Dockerfile
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: |
ghcr.io/cosmoscontracts/juno:${{ env.MAJOR_VERSION }}
ghcr.io/cosmoscontracts/juno:${{ env.MAJOR_VERSION }}.${{ env.MINOR_VERSION }}
ghcr.io/cosmoscontracts/juno:${{ env.MAJOR_VERSION }}.${{ env.MINOR_VERSION }}.${{ env.PATCH_VERSION }}
ghcr.io/cosmoscontracts/juno:v${{ env.MAJOR_VERSION }}.${{ env.MINOR_VERSION }}.${{ env.PATCH_VERSION }}