Skip to content

Commit 5799728

Browse files
authored
Update BuildImage.yml
1 parent d874a8d commit 5799728

File tree

1 file changed

+59
-5
lines changed

1 file changed

+59
-5
lines changed

.github/workflows/BuildImage.yml

Lines changed: 59 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,44 @@ jobs:
1515

1616
- name: Build image
1717
run: |
18-
docker build --no-cache -t ${{ github.sha }} .
18+
# Set version
19+
GO_WEBSITE=$(curl -sX GET https://golang.org/dl/)
20+
GO_VERSION=${GO_VERSION:-$(echo "$GO_WEBSITE" | grep -o '<span.*>.*linux-amd64.*</span>' | grep -oP '(?<=go).*(?=.linux)')}
21+
if [ $(echo "$GO_VERSION" | tr -d -c '.' | awk '{ print length; }') = "1" ]; then GO_TAG="${GO_VERSION}.0"; else GO_TAG="${GO_VERSION}"; fi
22+
echo "GO_TAG=${GO_TAG}" >> $GITHUB_ENV
23+
GO_TAG_MINOR=$(echo "$GO_TAG" | awk 'BEGIN{FS=OFS="."} NF--')
24+
echo "GO_TAG_MINOR=${GO_TAG_MINOR}" >> $GITHUB_ENV
25+
GO_TAG_MAJOR=$(echo "$GO_TAG_MINOR" | awk 'BEGIN{FS=OFS="."} NF--')
26+
echo "GO_TAG_MAJOR=${GO_TAG_MAJOR}" >> $GITHUB_ENV
27+
echo "GO_TAG is $GO_TAG GO_TAG_MINOR is $GO_TAG_MINOR GO_TAG_MAJOR is $GO_TAG_MAJOR"
28+
if [ "$GO_VERSION" == $(echo "$GO_WEBSITE" | grep -o '<span.*>.*linux-amd64.*</span>' | grep -oP '(?<=go).*(?=.linux)') ]; then LATEST="true"; fi
29+
echo "LATEST=${LATEST}" >> $GITHUB_ENV
30+
if [ "$GO_VERSION" == $(echo "$GO_WEBSITE" | grep -o 'download" href=".*linux-amd64.tar.gz">' | grep -oP '(?<=go/go).*(?=.linux)' | grep -m 1 ^${GO_TAG_MINOR}) ]; then LATEST_MINOR="true"; fi
31+
echo "LATEST_MINOR=${LATEST_MINOR}" >> $GITHUB_ENV
32+
if [ "$GO_VERSION" == $(echo "$GO_WEBSITE" | grep -o 'download" href=".*linux-amd64.tar.gz">' | grep -oP '(?<=go/go).*(?=.linux)' | grep -m 1 ^${GO_TAG_MAJOR}) ]; then LATEST_MAJOR="true"; fi
33+
echo "LATEST_MAJOR=${LATEST_MAJOR}" >> $GITHUB_ENV
34+
echo "LATEST is ${LATEST:-not true}, LATEST_MINOR is ${LATEST_MINOR:-not true}, LATEST_MAJOR is ${LATEST_MAJOR:-not true}"
35+
# Build image
36+
docker build --no-cache --build-arg GO_VERSION=${GO_VERSION} -t ${{ github.sha }} .
1937
2038
- name: Tag image
2139
if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) }}
2240
run: |
2341
docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}
42+
docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG }}
43+
docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG }}-${{ github.sha }}
44+
docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MAJOR }}
45+
docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MAJOR }}-${{ github.sha }}
46+
docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MINOR }}
47+
docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MINOR }}-${{ github.sha }}
2448
docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
2549
docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}
50+
docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG }}
51+
docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG }}-${{ github.sha }}
52+
docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MAJOR }}
53+
docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MAJOR }}-${{ github.sha }}
54+
docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MINOR }}
55+
docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MINOR }}-${{ github.sha }}
2656
docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
2757
2858
- name: Credential check
@@ -47,8 +77,20 @@ jobs:
4777
- name: Push tags to GitHub Container Registry
4878
if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.CR_USER && env.CR_PAT }}
4979
run: |
50-
docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
51-
docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}
80+
docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG }}-${{ github.sha }}
81+
docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG }}
82+
if [ "${{ env.LATEST_MAJOR }}" == "true" ]; then
83+
docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MAJOR }}-${{ github.sha }}
84+
docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MAJOR }}
85+
fi
86+
if [ "${{ env.LATEST_MINOR }}" == "true" ]; then
87+
docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MINOR }}-${{ github.sha }}
88+
docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MINOR }}
89+
fi
90+
if [ "${{ env.LATEST }}" == "true" ]; then
91+
docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
92+
docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}
93+
fi
5294
5395
- name: Login to DockerHub
5496
if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.DOCKERUSER && env.DOCKERPASS }}
@@ -58,5 +100,17 @@ jobs:
58100
- name: Push tags to DockerHub
59101
if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.DOCKERUSER && env.DOCKERPASS }}
60102
run: |
61-
docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
62-
docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}
103+
docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG }}-${{ github.sha }}
104+
docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG }}
105+
if [ "${{ env.LATEST_MAJOR }}" == "true" ]; then
106+
docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MAJOR }}-${{ github.sha }}
107+
docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MAJOR }}
108+
fi
109+
if [ "${{ env.LATEST_MINOR }}" == "true" ]; then
110+
docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MINOR }}-${{ github.sha }}
111+
docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ env.GO_TAG_MINOR }}
112+
fi
113+
if [ "${{ env.LATEST }}" == "true" ]; then
114+
docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
115+
docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}
116+
fi

0 commit comments

Comments
 (0)