secrets 1.3.0

Protected-access memory for cryptographic secrets
Documentation
name: Build and Test

on:
  push:
    branches: [ 'master' ]
    tags:     [ 'v*' ]
  pull_request:
    branches: [ 'master' ]

env:
  BUILDX_CACHE: /tmp/buildx-cache

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        toolchain:    ["", "stable", "beta"]
        rustflags:    ["-A warnings"]
        rustdocflags: [""]
        include:
          - toolchain:    "nightly"
            rustflags:    "-D warnings"
            rustdocflags: "-D rustdoc::all -A rustdoc::private_doc_tests"

    steps:
      - name: Set up build cache
        uses: actions/cache@v4
        with:
          path: ${{ env.BUILDX_CACHE }}
          key:  ${{ runner.os }}-buildx-${{ github.sha }}
          restore-keys: |
            ${{ runner.os }}-buildx-

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1

      - name: Build Docker container
        uses: docker/build-push-action@v2
        with:
          build-args: |
            TOOLCHAIN=${{ matrix.toolchain }}
            RUSTFLAGS=${{ matrix.rustflags }}
            RUSTDOCFLAGS=${{ matrix.rustdocflags }}
          cache-from: type=local,src=${{ env.BUILDX_CACHE }}-new
          cache-to:   type=local,dest=${{ env.BUILDX_CACHE }}-new

      - name: Clean build cache
        run: |
          rm -rf ${{ env.BUILDX_CACHE }}
          mv     ${{ env.BUILDX_CACHE }}-new ${{ env.BUILDX_CACHE }}