• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1name: Release
2
3on:
4  workflow_dispatch:
5
6jobs:
7
8  build_release:
9    runs-on: ${{ matrix.os }}
10    strategy:
11      matrix:
12        os: [ubuntu-latest, macos-10.15, windows-2016]
13        include:
14          - os: ubuntu-latest
15            arch: "linux"
16            bazel_args: "--config=toolchain --extra_toolchains=@llvm_toolchain//:cc-toolchain-x86_64-linux"
17          - os: macos-10.15
18            arch: "macos-x86_64"
19            bazel_args: "--config=toolchain --extra_toolchains=@llvm_toolchain//:cc-toolchain-x86_64-darwin"
20          - os: windows-2016
21            arch: "windows"
22            bazel_args: ""
23
24    steps:
25      - uses: actions/checkout@v2
26
27      - name: Set up JDK
28        uses: actions/setup-java@v1
29        with:
30          java-version: 8
31
32      - name: Build
33        run: |
34          bazelisk build --config=ci --remote_header=x-buildbuddy-api-key=${{ secrets.BUILDBUDDY_API_KEY }} --java_runtime_version=localjdk_${{ matrix.jdk }} ${{ matrix.bazel_args }} //agent/src/main/java/com/code_intelligence/jazzer/replay:Replayer_deploy.jar //:jazzer_release
35          cp -L bazel-bin/agent/src/main/java/com/code_intelligence/jazzer/replay/Replayer_deploy.jar replayer.jar
36          cp -L bazel-bin/jazzer_release.tar.gz release-${{ matrix.arch }}.tar.gz
37
38      - name: Upload replayer
39        uses: actions/upload-artifact@v2
40        with:
41          name: replayer_${{ matrix.arch }}
42          path: replayer.jar
43
44      - name: Upload release tar
45        uses: actions/upload-artifact@v2
46        with:
47          name: jazzer_releases
48          path: release-${{ matrix.arch}}.tar.gz
49
50  merge_replayer_jars:
51    runs-on: ubuntu-latest
52    needs: build_release
53
54    steps:
55      - name: Download macOS jar
56        uses: actions/download-artifact@v2
57        with:
58          name: replayer_darwin
59          path: replayer_darwin
60
61      - name: Download Linux jar
62        uses: actions/download-artifact@v2
63        with:
64          name: replayer_linux
65          path: replayer_linux
66
67      - name: Download Windows jar
68        uses: actions/download-artifact@v2
69        with:
70          name: replayer_windows
71          path: replayer_windows
72
73      - name: Merge jars
74        run: |
75          mkdir merged
76          unzip -o replayer_darwin/replayer.jar -d merged
77          unzip -o replayer_linux/replayer.jar -d merged
78          unzip -o replayer_windows/replayer.jar -d merged
79          jar cvmf merged/META-INF/MANIFEST.MF replayer.jar -C merged .
80
81      - name: Upload merged jar
82        uses: actions/upload-artifact@v2
83        with:
84          name: replayer
85          path: replayer.jar
86
87