Skip to content

Commit c1310e9

Browse files
authored
💚 workflow corrections and simplifications (#23)
* 💚 simplify push latest workflow * 💚 switch branch trigger filters to avoid build on master * 💚 correct and simplify release workflow * 💚 update image articat name for build workflow * 💚 fixing image artifact upload * 💚 change tag env var name in release workflow
1 parent 6a12f4e commit c1310e9

File tree

3 files changed

+41
-73
lines changed

3 files changed

+41
-73
lines changed

.github/workflows/build.yml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@ on:
77
tags-ignore:
88
- "**"
99
branches:
10-
- "!master"
1110
- "**"
11+
- "!master"
1212

1313
env:
14-
IMAGE_NAME: "zenika/terraform-aws-cli"
14+
ORGANIZATION: "zenika"
15+
IMAGE_NAME: "terraform-aws-cli"
1516

1617
jobs:
1718
lint:
@@ -34,14 +35,17 @@ jobs:
3435
- name: Check out the repo
3536
uses: actions/checkout@v2
3637

38+
- name: Save branch name as env var
39+
run: echo "::set-env name=BRANCH::${GITHUB_REF##*/}"
40+
3741
- name: Build image
38-
run: docker image build . --file Dockerfile --tag $IMAGE_NAME:${GITHUB_REF##*/}
42+
run: docker image build . --file Dockerfile --tag $ORGANIZATION/$IMAGE_NAME:$BRANCH
3943

40-
- name: save image
41-
run: docker image save -o image.tar $IMAGE_NAME:${GITHUB_REF##*/}
44+
- name: Save image
45+
run: docker image save -o $IMAGE_NAME-$BRANCH.tar $ORGANIZATION/$IMAGE_NAME:$BRANCH
4246

4347
- name: Upload image artifact
4448
uses: actions/upload-artifact@v2
4549
with:
46-
name: image
47-
path: image.tar
50+
name: ${{ env.IMAGE_NAME }}-${{ env.BRANCH }}
51+
path: ${{ env.IMAGE_NAME }}-${{ env.BRANCH }}.tar

.github/workflows/push-latest.yml

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ on:
77
- "master"
88

99
env:
10-
IMAGE_NAME: "zenika/terraform-aws-cli"
10+
ORGANIZATION: "zenika"
11+
IMAGE_NAME: "terraform-aws-cli"
1112
IMAGE_TAG: "latest"
1213

13-
1414
jobs:
1515
lint:
1616
runs-on: ubuntu-latest
@@ -24,7 +24,7 @@ jobs:
2424
with:
2525
dockerfile: "Dockerfile"
2626

27-
build:
27+
build_push_latest:
2828
runs-on: ubuntu-latest
2929
needs: lint
3030

@@ -33,32 +33,19 @@ jobs:
3333
uses: actions/checkout@v2
3434

3535
- name: Build image
36-
run: docker image build . --file Dockerfile --tag $IMAGE_NAME:$IMAGE_TAG
37-
38-
- name: save image
39-
run: docker image save -o image.tar $IMAGE_NAME:$IMAGE_TAG
40-
41-
- name: Upload image artifact
42-
uses: actions/upload-artifact@v2
43-
with:
44-
name: image
45-
path: image.tar
46-
47-
push:
48-
runs-on: ubuntu-latest
49-
needs: build
50-
51-
steps:
52-
- name: download image artifact
53-
uses: actions/download-artifact@v2
54-
with:
55-
name: image
56-
57-
- name: load image
58-
run: docker image load --input image.tar
36+
run: docker image build . --file Dockerfile --tag $ORGANIZATION/$IMAGE_NAME:$IMAGE_TAG
5937

6038
- name: Login to Docker Hub registry
6139
run: echo '${{ secrets.DOCKERHUB_PASS }}' | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
6240

6341
- name: Push image to registry
64-
run: docker push $IMAGE_NAME:$IMAGE_TAG
42+
run: docker push $ORGANIZATION/$IMAGE_NAME:$IMAGE_TAG
43+
44+
- name: Save image
45+
run: docker image save -o $IMAGE_NAME-$IMAGE_TAG.tar $ORGANIZATION/$IMAGE_NAME:$IMAGE_TAG
46+
47+
- name: Upload image artifact
48+
uses: actions/upload-artifact@v2
49+
with:
50+
name: ${{ env.IMAGE_NAME }}-${{ env.IMAGE_TAG }}
51+
path: ${{ env.IMAGE_NAME }}-${{ env.IMAGE_TAG }}.tar

.github/workflows/release.yml

Lines changed: 16 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ on:
77
- "**"
88

99
env:
10-
IMAGE_NAME: "zenika/terraform-aws-cli"
10+
ORGANIZATION: "zenika"
11+
IMAGE_NAME: "terraform-aws-cli"
1112

1213
jobs:
1314
lint:
@@ -22,7 +23,7 @@ jobs:
2223
with:
2324
dockerfile: "Dockerfile"
2425

25-
build_all:
26+
build_push_release:
2627
runs-on: ubuntu-latest
2728
needs: lint
2829

@@ -40,47 +41,23 @@ jobs:
4041
- name: Check out the repo
4142
uses: actions/checkout@v2
4243

43-
- name: Get tag and save in env var
44-
run: echo "::set-env name=TAG::${GITHUB_REF##*/}"
44+
- name: Get release tag and save in env var
45+
run: echo "::set-env name=RELEASE_TAG::${GITHUB_REF##*/}"
4546

4647
- name: Build image
47-
run: docker image build . --file Dockerfile --build-arg TERRAFORM_VERSION=$TF_VERSION --build-arg AWS_CLI_VERSION=$AWS_CLI_VERSIOIN --tag $IMAGE_NAME:$TAG-$IMAGE_TAG
48-
49-
- name: save image
50-
run: docker image save -o image-$TAG-$IMAGE_TAG.tar $IMAGE_NAME:$TAG-$IMAGE_TAG
51-
52-
- name: Upload image artifact
53-
uses: actions/upload-artifact@v2
54-
with:
55-
name: image-${{ env.TAG }}-${{ env.IMAGE_TAG }}
56-
path: image-${{ env.TAG }}-${{ env.IMAGE_TAG }}.tar
57-
58-
push_all:
59-
runs-on: ubuntu-latest
60-
needs: build_all
61-
62-
strategy:
63-
matrix:
64-
versions:
65-
- { tf_version: "0.12.24", awscli_version: "1.18.40" }
66-
67-
env:
68-
IMAGE_TAG: "tf${{ matrix.versions.tf_version }}-awscli${{ matrix.versions.awscli_version }}"
69-
70-
steps:
71-
- name: Get tag and save in env var
72-
run: echo "::set-env name=TAG::${GITHUB_REF##*/}"
73-
74-
- name: download image artifact
75-
uses: actions/download-artifact@v2
76-
with:
77-
name: image-${{ env.TAG }}-${{ env.IMAGE_TAG }}
78-
79-
- name: load image
80-
run: docker image load --input image-$TAG-$IMAGE_TAG.tar
48+
run: docker image build . --file Dockerfile --build-arg TERRAFORM_VERSION=$TF_VERSION --build-arg AWS_CLI_VERSION=$AWS_CLI_VERSIOIN --tag $ORGANIZATION/$IMAGE_NAME:$RELEASE_TAG-$IMAGE_TAG
8149

8250
- name: Login to Docker Hub registry
8351
run: echo '${{ secrets.DOCKERHUB_PASS }}' | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
8452

8553
- name: Push image to registry
86-
run: docker push $IMAGE_NAME:$TAG-$IMAGE_TAG
54+
run: docker push $ORGANIZATION/$IMAGE_NAME:$RELEASE_TAG-$IMAGE_TAG
55+
56+
- name: Save image
57+
run: docker image save -o $IMAGE_NAME-$RELEASE_TAG-$IMAGE_TAG.tar $ORGANIZATION/$IMAGE_NAME:$RELEASE_TAG-$IMAGE_TAG
58+
59+
- name: Upload image artifact
60+
uses: actions/upload-artifact@v2
61+
with:
62+
name: ${{ env.IMAGE_NAME }}-${{ env.RELEASE_TAG }}-${{ env.IMAGE_TAG }}
63+
path: ${{ env.IMAGE_NAME }}-${{ env.RELEASE_TAG }}-${{ env.IMAGE_TAG }}.tar

0 commit comments

Comments
 (0)