...

Text file src/github.com/klauspost/compress/.github/workflows/go.yml

Documentation: github.com/klauspost/compress/.github/workflows

     1name: Go
     2
     3on:
     4  push:
     5    branches: [ master ]
     6  pull_request:
     7    branches: [ master ]
     8
     9permissions: read-all
    10
    11jobs:
    12  build:
    13    strategy:
    14      matrix:
    15        go-version: [1.20.x, 1.21.x, 1.22.x]
    16        os: [ubuntu-latest, macos-latest, windows-latest]
    17    env:
    18      CGO_ENABLED: 0
    19    runs-on: ${{ matrix.os }}
    20    steps:
    21    - name: Set up Go
    22      uses: actions/setup-go@v5
    23      with:
    24        go-version: ${{ matrix.go-version }}
    25
    26    - name: Checkout code
    27      uses: actions/checkout@v4
    28
    29    - name: Vet
    30      run: go vet ./...
    31
    32    - name: Test
    33      run: go test ./...
    34
    35    - name: Test Noasm
    36      run: go test -tags=noasm ./...
    37
    38    - name: Test Race 1 CPU
    39      env:
    40        CGO_ENABLED: 1
    41      run: go test -cpu=1 -short -race -v ./...
    42
    43    - name: Test Race 4 CPU
    44      env:
    45        CGO_ENABLED: 1
    46      run: go test -cpu=4 -short -race -v ./...
    47
    48  generate:
    49    strategy:
    50      matrix:
    51        pkg: [s2, zstd, huff0]
    52    runs-on: ubuntu-latest
    53    steps:
    54    - name: Set up Go
    55      uses: actions/setup-go@v5
    56      with:
    57        go-version: 1.21.x
    58
    59    - name: Checkout code
    60      uses: actions/checkout@v4
    61
    62    - name: Generate
    63      working-directory: ${{ matrix.pkg }}/_generate
    64      run: go generate -v -x
    65
    66    - name: Git Status
    67      run: |
    68        git diff
    69        test -z "$(git status --porcelain)"
    70
    71  build-special:
    72    env:
    73      CGO_ENABLED: 0
    74    runs-on: ubuntu-latest
    75    steps:
    76    - name: Set up Go
    77      uses: actions/setup-go@v5
    78      with:
    79        go-version: 1.22.x
    80
    81    - name: Checkout code
    82      uses: actions/checkout@v4
    83
    84    - name: fmt
    85      run: diff <(gofmt -d .) <(printf "")
    86
    87    - name: Test 386
    88      run: GOOS=linux GOARCH=386 go test -short ./...
    89
    90    - name: Build s2c
    91      run: go build github.com/klauspost/compress/s2/cmd/s2c && go build github.com/klauspost/compress/s2/cmd/s2d&&./s2c -verify s2c &&./s2d s2c.s2&&rm ./s2c&&rm s2d&&rm s2c.s2
    92
    93    - name: goreleaser deprecation
    94      run: curl -sfL https://git.io/goreleaser | VERSION=v1.20.0 sh -s -- check
    95
    96    - name: goreleaser snapshot
    97      run: curl -sL https://git.io/goreleaser | VERSION=v1.20.0 sh -s -- --snapshot --skip-publish --rm-dist
    98
    99    - name: Test S2 GOAMD64 v3
   100      env:
   101        GOAMD64: v3
   102      shell: bash {0}
   103      run: go test . -test.run=None;if [ $? -eq 0 ]; then go test ./s2/...; else true; fi
   104
   105    - name: Test GOAMD64 v4
   106      env:
   107        GOAMD64: v4
   108      shell: bash {0}
   109      run: go test . -test.run=None;if [ $? -eq 0 ]; then go test ./s2/...; else true; fi
   110
   111  fuzz-s2:
   112    env:
   113      CGO_ENABLED: 0
   114    runs-on: ubuntu-latest
   115    steps:
   116      - name: Set up Go
   117        uses: actions/setup-go@v5
   118        with:
   119          go-version: 1.22.x
   120
   121      - name: Checkout code
   122        uses: actions/checkout@v4
   123
   124      - name: S2/FuzzDictBlocks
   125        run: go test -run=none -fuzz=FuzzDictBlocks -fuzztime=100000x -test.fuzzminimizetime=10ms ./s2/.
   126
   127      - name: S2/FuzzEncodingBlocks
   128        run: go test -run=none -fuzz=FuzzEncodingBlocks -fuzztime=500000x -test.fuzzminimizetime=10ms ./s2/.
   129
   130      - name: S2/FuzzLZ4Block
   131        run: go test -run=none -fuzz=FuzzLZ4Block -fuzztime=500000x -test.fuzzminimizetime=10ms ./s2/.
   132
   133      - name: S2/FuzzDictBlocks/noasm
   134        run: go test -tags=noasm -run=none -fuzz=FuzzDictBlocks -fuzztime=100000x -test.fuzzminimizetime=10ms ./s2/.
   135
   136      - name: S2/FuzzEncodingBlocks/noasm
   137        run: go test -tags=noasm -run=none -fuzz=FuzzEncodingBlocks -fuzztime=500000x -test.fuzzminimizetime=10ms ./s2/.
   138
   139      - name: S2/FuzzLZ4Block/noasm
   140        run: go test -tags=noasm -run=none -fuzz=FuzzLZ4Block -fuzztime=500000x -test.fuzzminimizetime=10ms ./s2/.
   141
   142  fuzz-zstd:
   143    env:
   144      CGO_ENABLED: 0
   145    runs-on: ubuntu-latest
   146    steps:
   147      - name: Set up Go
   148        uses: actions/setup-go@v5
   149        with:
   150          go-version: 1.22.x
   151
   152      - name: Checkout code
   153        uses: actions/checkout@v4
   154
   155      - name: zstd/FuzzDecodeAll
   156        run: go test -run=none -fuzz=FuzzDecodeAll -fuzztime=500000x -test.fuzzminimizetime=10ms ./zstd/.
   157
   158      - name: zstd/FuzzDecAllNoBMI2
   159        run: go test -run=none -fuzz=FuzzDecAllNoBMI2 -fuzztime=500000x -test.fuzzminimizetime=10ms ./zstd/.
   160
   161      - name: zstd/FuzzDecoder
   162        run: go test -run=none -fuzz=FuzzDecoder -fuzztime=500000x -test.fuzzminimizetime=10ms ./zstd/.
   163
   164      - name: zstd/FuzzNoBMI2Dec
   165        run: go test -run=none -fuzz=FuzzNoBMI2Dec -fuzztime=500000x -test.fuzzminimizetime=10ms ./zstd/.
   166
   167      - name: zstd/FuzzEncoding
   168        run: cd zstd&&go test -run=none -fuzz=FuzzEncoding -fuzztime=250000x -test.fuzzminimizetime=10ms -fuzz-end=3&&cd ..
   169
   170      - name: zstd/FuzzDecodeAll/noasm
   171        run: go test -tags=noasm -run=none -fuzz=FuzzDecodeAll -fuzztime=500000x -test.fuzzminimizetime=10ms ./zstd/.
   172
   173      - name: zstd/FuzzDecoder/noasm
   174        run: go test -tags=noasm -run=none -fuzz=FuzzDecoder -fuzztime=500000x -test.fuzzminimizetime=10ms ./zstd/.
   175
   176      - name: zstd/FuzzEncoding/noasm
   177        run: cd zstd&&go test -tags=noasm -run=none -fuzz=FuzzEncoding -fuzztime=250000x -test.fuzzminimizetime=10ms -fuzz-end=3&&cd ..
   178
   179      - name: zstd/FuzzEncodingBest
   180        run: cd zstd&&go test -run=none -fuzz=FuzzEncoding -fuzztime=25000x -test.fuzzminimizetime=10ms -fuzz-start=4&&cd ..
   181
   182  fuzz-other:
   183    env:
   184      CGO_ENABLED: 0
   185    runs-on: ubuntu-latest
   186    steps:
   187      - name: Set up Go
   188        uses: actions/setup-go@v5
   189        with:
   190          go-version: 1.22.x
   191
   192      - name: Checkout code
   193        uses: actions/checkout@v4
   194
   195      - name: flate/FuzzEncoding
   196        run: go test -run=none -fuzz=FuzzEncoding -fuzztime=100000x -test.fuzzminimizetime=10ms ./flate/.
   197
   198      - name: flate/FuzzEncoding/noasm
   199        run: go test -run=none -tags=noasm -fuzz=FuzzEncoding -fuzztime=100000x -test.fuzzminimizetime=10ms ./flate/.
   200
   201      - name: zip/FuzzReader
   202        run: go test -run=none -fuzz=FuzzReader -fuzztime=500000x -test.fuzzminimizetime=10ms ./zip/.
   203
   204      - name: fse/FuzzCompress
   205        run: go test -run=none -fuzz=FuzzCompress -fuzztime=1000000x -test.fuzzminimizetime=10ms ./fse/.
   206
   207      - name: fse/FuzzDecompress
   208        run: go test -run=none -fuzz=FuzzDecompress -fuzztime=1000000x -test.fuzzminimizetime=10ms ./fse/.

View as plain text