From 883cb13afd89b0fe270db4bc0f8c51256a5abcfc Mon Sep 17 00:00:00 2001 From: Jared Weakly Date: Wed, 2 Sep 2020 09:53:06 -0700 Subject: [PATCH] Build docker images in CI (#836) * Build docker images in CI --- .github/ci.sh | 4 +--- .github/workflows/build.yml | 17 ++++++++++++++++- .github/workflows/docker.yml | 24 ++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/docker.yml diff --git a/.github/ci.sh b/.github/ci.sh index e4f196f14b..c5e4fc0337 100755 --- a/.github/ci.sh +++ b/.github/ci.sh @@ -117,9 +117,7 @@ build() { ghc_ver="$(ghc --numeric-version)" cp cabal.GHC-"$ghc_ver".config cabal.project.freeze cabal v2-update - # Limit jobs on windows due to: https://gitlab.haskell.org/ghc/ghc/issues/17926 - if [[ "$ghc_ver" =~ 8.8.3|8.10.1 && $IS_WIN ]]; then JOBS=1; else JOBS=2; fi - cabal v2-configure -j$JOBS --minimize-conflict-set + cabal v2-configure -j2 --minimize-conflict-set tee -a cabal.project > /dev/null < cabal.project.ci if ! retry cabal v2-build "$@" saw jss && [[ "$RUNNER_OS" == "macOS" ]]; then echo "Working around a dylib issue on macos by removing the cache and trying again" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e6ae2e0df2..baa1b3dd9c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -123,6 +123,21 @@ jobs: name: Warn if tests failed run: echo "::error ::Test Suite Failed. Pipeline allowed to pass until tests are reliable." + docker: + runs-on: ubuntu-latest + needs: [outputs] + if: contains(needs.outputs.outputs.changed, 'Dockerfile') + steps: + - uses: actions/checkout@v2 + - run: | + git submodule update --init + git -C deps/abcBridge submodule update --init + - name: Publish to Registry + uses: docker/build-push-action@v1 + with: + repository: galoisinc/saw + push: false + s2n-tests: name: "Test s2n proofs" needs: build @@ -225,7 +240,7 @@ jobs: hub release create -d -m "$body" "$tag" fi assets=() - find ./artifacts \( -name 'saw*.tar.gz*' -o -name '*.msi*' \) -type f -print0 | + find ./artifacts \( -name 'saw*.tar.gz*' \) -type f -print0 | while IFS= read -r -d '' a; do assets+=("-a" "$a"); done hub release edit -d "${assets[@]}" -m "" "$tag" env: diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000000..a306ec8c48 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,24 @@ +name: Docker +on: + push: + tags: ["[0-9]+.[0-9]+.[0-9]+"] + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - run: | + git submodule update --init + git -C deps/abcBridge submodule update --init + - run: .github/ci.sh set_version + id: outputs + - name: Publish to Registry + uses: docker/build-push-action@v1 + with: + username: ${{ secrets.GITHUBSAW_USERNAME }} + password: ${{ secrets.GITHUBSAW }} + repository: galoisinc/saw + tags: "latest,${{ steps.outputs.outputs.saw-version }}" + add_git_labels: true + push: true