Skip to content

Commit 4212d04

Browse files
authored
Merge pull request #24 from su2code/feature_asan
Containers for address sanitizer tests
2 parents 0db23db + f0859c9 commit 4212d04

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

.github/workflows/docker-image-upload.yml

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,37 @@ jobs:
102102
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 }}
103103
# ghcr.io/${{ github.repository_owner }}/su2/build-su2-tsan-arm64:${{ needs.date-tag.outputs.date_tag }}
104104

105+
build-su2-asan:
106+
needs: [date-tag, build-su2]
107+
if: ${{ always() && !(contains(needs.*.result, 'failure')) }}
108+
runs-on: ubuntu-latest
109+
steps:
110+
- name: Checkout
111+
uses: actions/checkout@v3
112+
113+
- name: Set up QEMU
114+
uses: docker/setup-qemu-action@v2
115+
with:
116+
platforms: arm64
117+
118+
- name: Set up Docker Buildx
119+
uses: docker/setup-buildx-action@v2
120+
121+
- name: Login to Github Docker Registry
122+
uses: docker/login-action@v2
123+
with:
124+
registry: ghcr.io
125+
username: ${{ github.actor }}
126+
password: ${{ secrets.GITHUB_TOKEN }}
127+
128+
- name: Docker Buildx Create
129+
run: docker buildx create --use
130+
131+
- name: Build and push build-su2-asan
132+
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-asan:${{ needs.date-tag.outputs.date_tag }} --push --file ./build/Dockerfile.asan ./build/
133+
105134
test-su2:
106-
needs: [date-tag, build-su2, build-su2-tsan]
135+
needs: [date-tag, build-su2, build-su2-tsan, build-su2-asan]
107136
if: ${{ always() && !(contains(needs.*.result, 'failure')) }}
108137
runs-on: ubuntu-latest
109138
steps:
@@ -135,6 +164,9 @@ jobs:
135164
run: docker buildx build --platform=linux/amd64 --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/
136165
# --platform=linux/arm64
137166

167+
- name: Build and push test-su2-asan
168+
run: docker buildx build --platform=linux/amd64 --platform=linux/arm64 --build-arg BASE_IMAGE=ghcr.io/${{ github.repository_owner }}/su2/build-su2-asan:${{ needs.date-tag.outputs.date_tag }} -t ghcr.io/${{ github.repository_owner }}/su2/test-su2-asan:${{ needs.date-tag.outputs.date_tag }} --push ./test/
169+
138170
cross-build-su2-mac:
139171
needs: [date-tag, build-su2]
140172
if: ${{ always() && !(contains(needs.*.result, 'failure')) }}

build/Dockerfile.asan

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
ARG BASE_IMAGE=ghcr.io/su2code/su2/build-su2:220614-1237
2+
3+
FROM $BASE_IMAGE
4+
5+
# Enable address sanitizer
6+
ENV CXXFLAGS="-fsanitize=address -fno-omit-frame-pointer $CXXFLAGS"
7+
ENV CFLAGS="-fsanitize=address -fno-omit-frame-pointer $CFLAGS"

0 commit comments

Comments
 (0)