From f60c3d6111ed7f6c3aa81c549be560ac969f4e75 Mon Sep 17 00:00:00 2001 From: Nathan Moinvaziri Date: Wed, 7 Jun 2023 14:48:05 -0700 Subject: [PATCH] Added GitHub release workflow to create artifacts. --- .github/workflows/release.yaml | 102 +++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 000000000..b54539a7b --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,102 @@ +name: Release +on: + workflow_dispatch: + inputs: + version: + description: 'Version to release' + required: true + type: string +env: + TERM: xterm-256color + +jobs: + build: + name: ${{ matrix.name }} + runs-on: ${{ matrix.runs-on }} + strategy: + fail-fast: false + matrix: + include: + - name: Release - Ubuntu + short-name: lin64 + runs-on: ubuntu-latest + cmake-args: -D CMAKE_EXE_LINKER_FLAGS=-static + compiler: clang + cxx-compiler: clang++ + + - name: Release - macOS + short-name: mac64 + runs-on: macos-latest + cmake-args: -D CMAKE_OSX_DEPLOYMENT_TARGET=10.13 + + - name: Release - Windows + short-name: win64 + runs-on: windows-latest + cmake-args: -D CMAKE_GENERATOR_PLATFORM=x64 -D CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded + + steps: + - name: Setup environment + if: runner.os == 'Windows' + run: git config --global core.autocrlf false + + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install packages (Ubuntu) + if: runner.os == 'Linux' + run: sudo apt-get install -y ninja-build + + - name: Compiling source code + run: | + cmake -S . -B build ${{ matrix.cmake-args }} -D BUILD_SHARED_LIBS=OFF -D CMAKE_BUILD_TYPE=MinSizeRel + cmake --build build --config MinSizeRel + env: + CC: ${{ matrix.compiler }} + CXX: ${{ matrix.cxx-compiler }} + + - name: Upload artifacts (macOS/Linux) + uses: actions/upload-artifact@v3 + if: runner.os != 'Windows' + with: + name: breakpad-utilities-${{ matrix.short-name }} + path: | + build/minidump* + build/dump_sym* + retention-days: 7 + + - name: Upload artifacts (Windows) + uses: actions/upload-artifact@v3 + if: runner.os == 'Windows' + with: + name: breakpad-utilities-${{ matrix.short-name }} + path: | + build/MinSizeRel/minidump* + build/MinSizeRel/dump_sym* + build/MinSizeRel/msdia* + retention-days: 7 + + deploy: + name: Deploy Build - Ubuntu + runs-on: ubuntu-latest + needs: build + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Download artifacts + uses: actions/download-artifact@v3 + + - name: Package release assets + run: | + cd breakpad-utilities-lin64 + 7z a -tzip ../breakpad-utilities-lin64.zip * + cd ../breakpad-utilities-mac64 + 7z a -tzip ../breakpad-utilities-mac64.zip * + cd ../breakpad-utilities-win64 + 7z a -tzip ../breakpad-utilities-win64.zip * + + - name: Create GitHub release + run: | + gh release create ${{ github.event.inputs.version }} --generate-notes breakpad-utilities-*.zip + env: + GH_TOKEN: ${{ github.token }}