99 - ' master'
1010
1111jobs :
12- build-su2 :
12+ date-tag :
1313 runs-on : ubuntu-latest
1414 outputs :
1515 date_tag : ${{ steps.vars.outputs.date_tag }}
16+ steps :
17+ - name : Set variables
18+ id : vars
19+ run : echo "::set-output name=date_tag::$(date +%y%m%d-%H%M)"
20+
21+ build-su2 :
22+ needs : [date-tag]
23+ if : ${{ always() && !(contains(needs.*.result, 'failure')) }}
24+ runs-on : ubuntu-latest
1625 steps :
1726 - name : Checkout
1827 uses : actions/checkout@v2
@@ -32,21 +41,68 @@ jobs:
3241 username : ${{ github.actor }}
3342 password : ${{ secrets.GITHUB_TOKEN }}
3443
35- - name : Set variables
36- id : vars
37- run : echo "::set-output name=date_tag::$(date +%y%m%d-%H%M)"
38-
3944 - name : Docker Buildx Create
4045 run : docker buildx create --use
4146
4247 - name : Build and push build-su2
43- run : docker buildx build --platform=linux/amd64 --platform=linux/arm64 -t ghcr.io/${{ github.repository_owner }}/su2/build-su2:${{ steps.vars.outputs.date_tag }} --push ./build/
48+ run : docker buildx build --platform=linux/amd64 --platform=linux/arm64 -t ghcr.io/${{ github.repository_owner }}/su2/build-su2:${{ needs.date-tag.outputs.date_tag }} --push ./build/
49+
50+ build-su2-tsan-platforms :
51+ needs : [date-tag]
52+ if : ${{ always() && !(contains(needs.*.result, 'failure')) }}
53+ runs-on : ubuntu-latest
54+ strategy :
55+ fail-fast : false,
56+ matrix :
57+ platform : [amd64, arm64]
58+ steps :
59+ - name : Checkout
60+ uses : actions/checkout@v2
61+
62+ - name : Set up QEMU
63+ uses : docker/setup-qemu-action@v1
64+ with :
65+ platforms : arm64
66+
67+ - name : Set up Docker Buildx
68+ uses : docker/setup-buildx-action@v1
69+
70+ - name : Login to Github Docker Registry
71+ uses : docker/login-action@v1
72+ with :
73+ registry : ghcr.io
74+ username : ${{ github.actor }}
75+ password : ${{ secrets.GITHUB_TOKEN }}
76+
77+ - name : Docker Buildx Create
78+ run : docker buildx create --use
79+
80+ - name : Build and push single-platform build-su2-tsan
81+ run : docker buildx build --platform=linux/${{ matrix.platform }} -t ghcr.io/${{ github.repository_owner }}/su2/build-su2-tsan-${{ matrix.platform }}:${{ needs.date-tag.outputs.date_tag }} --push --file ./build/Dockerfile.tsan ./build/
82+
83+ build-su2-tsan :
84+ needs : [date-tag, build-su2-tsan-platforms]
85+ if : ${{ always() && !(contains(needs.*.result, 'failure')) }}
86+ runs-on : ubuntu-latest
87+ steps :
88+ - name : Set up Docker Buildx
89+ uses : docker/setup-buildx-action@v1
90+
91+ - name : Login to Github Docker Registry
92+ uses : docker/login-action@v1
93+ with :
94+ registry : ghcr.io
95+ username : ${{ github.actor }}
96+ password : ${{ secrets.GITHUB_TOKEN }}
97+
98+ - name : Docker Buildx Create
99+ run : docker buildx create --use
44100
45- - name : Build and push build-su2-tsan
46- run : docker buildx build --platform=linux/amd64 --platform=linux/arm64 - t ghcr.io/${{ github.repository_owner }}/su2/build-su2-tsan:${{ steps.vars .outputs.date_tag }} --push --file ./build/Dockerfile.tsan ./build/
101+ - name : Merge single-platform build-su2-tsan images
102+ run : docker buildx imagetools create - t ghcr.io/${{ github.repository_owner }}/su2/build-su2-tsan:${{ needs.date-tag .outputs.date_tag }} ghcr.io/${{ github.repository_owner }}/su2/build-su2-tsan-amd64:${{ needs.date-tag.outputs.date_tag }} ghcr.io/${{ github.repository_owner }}/su2/build-su2-tsan-arm64:${{ needs.date-tag.outputs.date_tag }}
47103
48104 test-su2 :
49- needs : [build-su2]
105+ needs : [date-tag, build-su2, build-su2-tsan ]
50106 if : ${{ always() && !(contains(needs.*.result, 'failure')) }}
51107 runs-on : ubuntu-latest
52108 steps :
@@ -72,13 +128,13 @@ jobs:
72128 run : docker buildx create --use
73129
74130 - name : Build and push test-su2
75- run : docker buildx build --platform=linux/amd64 --platform=linux/arm64 --build-arg BASE_IMAGE=ghcr.io/${{ github.repository_owner }}/su2/build-su2:${{ needs.build-su2 .outputs.date_tag }} -t ghcr.io/${{ github.repository_owner }}/su2/test-su2:${{ needs.build-su2 .outputs.date_tag }} --push ./test/
131+ run : docker buildx build --platform=linux/amd64 --platform=linux/arm64 --build-arg BASE_IMAGE=ghcr.io/${{ github.repository_owner }}/su2/build-su2:${{ needs.date-tag .outputs.date_tag }} -t ghcr.io/${{ github.repository_owner }}/su2/test-su2:${{ needs.date-tag .outputs.date_tag }} --push ./test/
76132
77133 - name : Build and push test-su2-tsan
78- run : docker buildx build --platform=linux/amd64 --platform=linux/arm64 --build-arg BASE_IMAGE=ghcr.io/${{ github.repository_owner }}/su2/build-su2-tsan:${{ needs.build-su2 .outputs.date_tag }} -t ghcr.io/${{ github.repository_owner }}/su2/test-su2-tsan:${{ needs.build-su2 .outputs.date_tag }} --push ./test/
134+ run : docker buildx build --platform=linux/amd64 --platform=linux/arm64 --build-arg BASE_IMAGE=ghcr.io/${{ github.repository_owner }}/su2/build-su2-tsan:${{ needs.date-tag .outputs.date_tag }} -t ghcr.io/${{ github.repository_owner }}/su2/test-su2-tsan:${{ needs.date-tag .outputs.date_tag }} --push ./test/
79135
80136 cross-build-su2-mac :
81- needs : [build-su2]
137+ needs : [date-tag, build-su2]
82138 if : ${{ always() && !(contains(needs.*.result, 'failure')) }}
83139 runs-on : ubuntu-latest
84140 steps :
@@ -104,7 +160,7 @@ jobs:
104160 run : docker buildx create --use
105161
106162 - name : Build and push build-su2-cross
107- run : docker buildx build --platform=linux/amd64 --platform=linux/arm64 --build-arg BASE_IMAGE=ghcr.io/${{ github.repository_owner }}/su2/build-su2:${{ needs.build-su2 .outputs.date_tag }} -t ghcr.io/${{ github.repository_owner }}/su2/build-su2-cross-stage1:${{ needs.build-su2 .outputs.date_tag }} --push --file ./build_cross/Dockerfile.stage1 ./build_cross/
163+ run : docker buildx build --platform=linux/amd64 --platform=linux/arm64 --build-arg BASE_IMAGE=ghcr.io/${{ github.repository_owner }}/su2/build-su2:${{ needs.date-tag .outputs.date_tag }} -t ghcr.io/${{ github.repository_owner }}/su2/build-su2-cross-stage1:${{ needs.date-tag .outputs.date_tag }} --push --file ./build_cross/Dockerfile.stage1 ./build_cross/
108164
109165 cross-build-su2-linux :
110166 needs : [build-su2, cross-build-su2-mac]
@@ -133,4 +189,4 @@ jobs:
133189 run : docker buildx create --use
134190
135191 - name : Build and push build-su2-cross
136- run : docker buildx build --platform=linux/amd64 --platform=linux/arm64 --build-arg BASE_IMAGE=ghcr.io/${{ github.repository_owner }}/su2/build-su2-cross-stage1:${{ needs.build-su2 .outputs.date_tag }} -t ghcr.io/${{ github.repository_owner }}/su2/build-su2-cross:${{ needs.build-su2 .outputs.date_tag }} --push --file ./build_cross/Dockerfile.stage2 ./build_cross/
192+ run : docker buildx build --platform=linux/amd64 --platform=linux/arm64 --build-arg BASE_IMAGE=ghcr.io/${{ github.repository_owner }}/su2/build-su2-cross-stage1:${{ needs.date-tag .outputs.date_tag }} -t ghcr.io/${{ github.repository_owner }}/su2/build-su2-cross:${{ needs.date-tag .outputs.date_tag }} --push --file ./build_cross/Dockerfile.stage2 ./build_cross/
0 commit comments