bunyan_view 0.3.3

A full-featured port of the Node Bunyan structured log file viewer
Documentation
name: Build and Publish Binaries
on:
  create:
    branches:
      - release-v[0-9]+.[0-9]+.[0-9]+

jobs:
  build-linux-packages:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v3
      - name: setup docker buildx
        uses: docker/setup-buildx-action@v2
      - name: create build container
        run: make container-debian-build-image
        env:
          DOCKER_BUILD_FLAGS: --load --cache-from=type=gha --cache-to=type=gha,mode=max
      - name: run tests
        run: make container-test
      - name: container-all-packages
        run: make container-all-packages
      - name: upload linux packages
        uses: actions/upload-artifact@v3
        with:
          name: linux-packages
          retention-days: 1
          path: target/dist/
  build-macos-packages:
    runs-on: macos-latest
    steps:
      - name: install GNU tools
        run: brew install gnu-sed grep gawk make
      - name: checkout
        uses: actions/checkout@v3
      - name: install latest rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          default: true
          override: true
      - name: install x86_64-apple-darwin and aarch64-apple-darwin targets
        run: rustup target install x86_64-apple-darwin aarch64-apple-darwin
      - name: run tests
        run: gmake test
      - name: macos-packages
        run: gmake gz-packages
      - name: upload MacOS packages
        uses: actions/upload-artifact@v3
        with:
          name: macos-packages
          retention-days: 1
          path: target/dist/
  build-supplemental-files-and-release:
    environment: release
    needs:
      - build-linux-packages
      - build-macos-packages
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v3
      - name: download linux packages
        uses: actions/download-artifact@v3
        with:
          name: linux-packages
          path: target/dist/
      - name: download macos packages
        uses: actions/download-artifact@v3
        with:
          name: macos-packages
          path: target/dist/
      - name: checksum
        run: make checksums
      - name: output checksums
        run: cat target/dist/SHA256SUMS
      - name: release-notes
        run: |
             git fetch --tags
             git fetch --unshallow || true
             git pull origin ${GITHUB_REF_NAME}
             make release-notes
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: append to changelog
        run: make changelog >> CHANGELOG.md
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: homebrew-package
        run: make homebrew-packages
      - name: assign git user and commit release changes
        run: |
          git config user.name 'Github Action'
          git config user.email 'dekobon@users.noreply.github.com'
          git commit CHANGELOG.md pkg/brew/*.rb -m "ci: release changes for ${GITHUB_REF_NAME}"
          git push origin ${GITHUB_REF_NAME}
      - name: do github release
        run: make gh-make-release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: do cargo release
        # Do not fail build on crates.io problems
        run: make cargo-release || true
        env:
          CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
      - name: create pull request integrating release branch changes
        run: |
          gh pr create --title "ci: integrate release changes for ${GITHUB_REF_NAME}" --body "This pull request was automatically created by the Github Action workflow **${GITHUB_WORKFLOW}**." --head ${GITHUB_REF_NAME} --base master
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}