9
9
runs-on : ubuntu-latest
10
10
steps :
11
11
- uses : actions/checkout@v4
12
+ - name : Parse Commit SHA to Container Tag
13
+ run : echo "CONTAINER_TAG=main_$(git log --pretty=format:'%h' -n 1)" >> $GITHUB_ENV
12
14
- name : Build container
13
- run : docker buildx build -f Dockerfile . -t UND-ACM/hello :latest
15
+ run : docker buildx build -f Dockerfile . -t UND-ACM/demo-ci-docker :latest -t UND-ACM/demo-ci-docker:main_${{ env.CONTAINER_TAG }}
14
16
- name : Export container
15
- run : docker save UND-ACM/hello :latest | gzip - > ${{ github.workflow_sha }}.tar.gz
17
+ run : docker save UND-ACM/demo-ci-docker :latest | gzip - > main_ ${{ env.CONTAINER_TAG }}.tar.gz
16
18
- uses : actions/upload-artifact@v4
17
19
name : Upload artifact
18
20
with :
19
- path : ' ${{ github.workflow_sha }}.tar.gz'
20
- name : ' container_tarball_${{ github.workflow_sha }}'
21
+ path : ' main_ ${{ env.CONTAINER_TAG }}.tar.gz'
22
+ name : ' container_tarball_${{ env.CONTAINER_TAG }}'
21
23
test :
22
- name : Test container functionality
24
+ name : Test container health
23
25
runs-on : ubuntu-latest
24
26
needs : compile
25
27
steps :
26
28
- uses : actions/download-artifact@v4
27
29
name : Download workflow artifact
28
30
with :
29
- name : ' container_tarball_${{ github.workflow_sha }}'
31
+ name : ' container_tarball_${{ env.CONTAINER_TAG }}'
30
32
- name : Load image
31
- run : gunzip -c ${{ github.workflow_sha }}.tar.gz | docker load
33
+ run : gunzip -c main_ ${{ env.CONTAINER_TAG }}.tar.gz | docker load
32
34
- name : Spin up container
33
- run : docker run -d --name helloworld UND-ACM/hello:latest
35
+ run : docker run -d --name helloworld UND-ACM/demo-ci-docker:main_${{ env.CONTAINER_TAG }}
34
36
- name : Await healthy or failed status
35
37
run : |
36
38
while(true); do
48
50
echo "Unknown status, uh oh!";
49
51
exit 1;
50
52
fi
51
- done
53
+ done
54
+ publish :
55
+ runs-on : ubuntu-latest
56
+ needs : test
57
+ steps :
58
+ - uses : actions/download-artifact@v4
59
+ name : Download workflow artifact
60
+ with :
61
+ name : ' container_tarball_${{ env.CONTAINER_TAG }}'
62
+ - name : Load image
63
+ run : gunzip -c main_${{ env.CONTAINER_TAG }}.tar.gz | docker load
64
+ - name : Log In to Registry
65
+ run : echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
66
+ - name : Publish Image
67
+ run : docker push --all-tags ghcr.io/UND-ACM/demo-ci-docker
0 commit comments