github.com/minio/console@v1.3.0/.github/workflows/cross-compile.yaml (about)

     1  # @format
     2  
     3  name: Cross Compile
     4  
     5  on:
     6    pull_request:
     7      branches:
     8        - master
     9      paths:
    10        - go.sum
    11  
    12  # This ensures that previous jobs for the PR are canceled when the PR is
    13  # updated.
    14  concurrency:
    15    group: ${{ github.workflow }}-${{ github.head_ref }}
    16    cancel-in-progress: true
    17  
    18  jobs:
    19    cross-compile-1:
    20      name: Cross compile
    21      needs:
    22        - lint-job
    23        - ui-assets
    24        - reuse-golang-dependencies
    25        - semgrep-static-code-analysis
    26      runs-on: ${{ matrix.os }}
    27      strategy:
    28        matrix:
    29          go-version: [ 1.21.x ]
    30          os: [ ubuntu-latest ]
    31      steps:
    32        - name: Check out code
    33          uses: actions/checkout@v3
    34  
    35        - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
    36          uses: actions/setup-go@v3
    37          with:
    38            go-version: ${{ matrix.go-version }}
    39            cache: true
    40          id: go
    41  
    42        - name: Build on ${{ matrix.os }}
    43          env:
    44            GO111MODULE: on
    45            GOOS: linux
    46          run: |
    47            make crosscompile arg1="'linux/ppc64le linux/mips64'"
    48  
    49    cross-compile-2:
    50      name: Cross compile 2
    51      needs:
    52        - lint-job
    53        - ui-assets
    54        - reuse-golang-dependencies
    55        - semgrep-static-code-analysis
    56      runs-on: ${{ matrix.os }}
    57      strategy:
    58        matrix:
    59          go-version: [ 1.21.x ]
    60          os: [ ubuntu-latest ]
    61      steps:
    62        - name: Check out code
    63          uses: actions/checkout@v3
    64        - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
    65          uses: actions/setup-go@v3
    66          with:
    67            go-version: ${{ matrix.go-version }}
    68            cache: true
    69          id: go
    70  
    71        - name: Build on ${{ matrix.os }}
    72          env:
    73            GO111MODULE: on
    74            GOOS: linux
    75          run: |
    76            make crosscompile arg1="'linux/arm64 linux/s390x'"
    77  
    78    cross-compile-3:
    79      name: Cross compile 3
    80      needs:
    81        - lint-job
    82        - ui-assets
    83        - reuse-golang-dependencies
    84        - semgrep-static-code-analysis
    85      runs-on: ${{ matrix.os }}
    86      strategy:
    87        matrix:
    88          go-version: [ 1.21.x ]
    89          os: [ ubuntu-latest ]
    90      steps:
    91        - name: Check out code
    92          uses: actions/checkout@v3
    93  
    94        - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
    95          uses: actions/setup-go@v3
    96          with:
    97            go-version: ${{ matrix.go-version }}
    98            cache: true
    99          id: go
   100  
   101        - name: Build on ${{ matrix.os }}
   102          env:
   103            GO111MODULE: on
   104            GOOS: linux
   105          run: |
   106            make crosscompile arg1="'darwin/amd64 freebsd/amd64'"
   107  
   108    cross-compile-4:
   109      name: Cross compile 4
   110      needs:
   111        - lint-job
   112        - ui-assets
   113        - reuse-golang-dependencies
   114        - semgrep-static-code-analysis
   115      runs-on: ${{ matrix.os }}
   116      strategy:
   117        matrix:
   118          go-version: [ 1.21.x ]
   119          os: [ ubuntu-latest ]
   120      steps:
   121        - name: Check out code
   122          uses: actions/checkout@v3
   123  
   124        - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
   125          uses: actions/setup-go@v3
   126          with:
   127            go-version: ${{ matrix.go-version }}
   128            cache: true
   129          id: go
   130  
   131        - name: Build on ${{ matrix.os }}
   132          env:
   133            GO111MODULE: on
   134            GOOS: linux
   135          run: |
   136            make crosscompile arg1="'windows/amd64 linux/arm'"
   137  
   138    cross-compile-5:
   139      name: Cross compile 5
   140      needs:
   141        - lint-job
   142        - ui-assets
   143        - reuse-golang-dependencies
   144        - semgrep-static-code-analysis
   145      runs-on: ${{ matrix.os }}
   146      strategy:
   147        matrix:
   148          go-version: [ 1.21.x ]
   149          os: [ ubuntu-latest ]
   150      steps:
   151        - name: Check out code
   152          uses: actions/checkout@v3
   153  
   154        - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
   155          uses: actions/setup-go@v3
   156          with:
   157            go-version: ${{ matrix.go-version }}
   158            cache: true
   159          id: go
   160  
   161        - name: Build on ${{ matrix.os }}
   162          env:
   163            GO111MODULE: on
   164            GOOS: linux
   165          run: |
   166            make crosscompile arg1="'linux/386 netbsd/amd64'"