Files
my-rook-config/.github/workflows/build.yml
T
subhamkrai 1d34907cf5 ci: add detached mode in tmate
with detached mode, we don't need to wait for the
tests to complete. Now, we can get inside tmate before
the tests start and we can monitor the tests.

By default, this mode will wait at the end of the job for
a user to connect and then to terminate the tmate session.
If no user has connected within 10 minutes after the post-job step started,
it will terminate the tmate session and quit gracefully.

Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit f171e1c037)
2023-07-25 20:47:47 +00:00

111 lines
3.1 KiB
YAML

name: Builds
on:
pull_request:
defaults:
run:
# reference: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#using-a-specific-shell
shell: bash --noprofile --norc -eo pipefail -x {0}
# cancel the in-progress workflow when PR is refreshed.
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
cancel-in-progress: true
permissions:
contents: read
jobs:
macos-build:
runs-on: macos-12
if: "!contains(github.event.pull_request.labels.*.name, 'skip-ci')"
steps:
- name: checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: consider debugging
uses: ./.github/workflows/tmate_debug
with:
use-tmate: ${{ secrets.USE_TMATE }}
- uses: actions/setup-go@v4
with:
go-version: "1.20"
- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: v3.6.2
- name: build rook
run: |
# Install kubectl binary as required for generating csv
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
sudo chown root: /usr/local/bin/kubectl
GOPATH=$(go env GOPATH) make clean && make -j$nproc IMAGES='ceph' BUILD_CONTAINER_IMAGE=false build
- name: validate build
run: tests/scripts/validate_modified_files.sh build
- name: run codegen
run: GOPATH=$(go env GOPATH) make codegen
- name: validate codegen
run: tests/scripts/validate_modified_files.sh codegen
- name: run mod check
run: GOPATH=$(go env GOPATH) make -j $(nproc) mod.check
- name: validate modcheck
run: tests/scripts/validate_modified_files.sh modcheck
- name: run crds-gen
run: make csv-clean && GOPATH=$(go env GOPATH) make crds
- name: validate crds-gen
run: tests/scripts/validate_modified_files.sh crd
- name: run gen-rbac
run: GOPATH=$(go env GOPATH) make gen-rbac
- name: validate gen-rbac
run: tests/scripts/validate_modified_files.sh gen-rbac
linux-build-all:
runs-on: ubuntu-20.04
if: "!contains(github.event.pull_request.labels.*.name, 'skip-ci')"
strategy:
fail-fast: false
matrix:
go-version: ["1.20"]
steps:
- name: checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: consider debugging
uses: ./.github/workflows/tmate_debug
with:
use-tmate: ${{ secrets.USE_TMATE }}
- name: setup golang ${{ matrix.go-version }}
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
- name: set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all
- name: build.all rook with go ${{ matrix.go-version }}
run: |
tests/scripts/github-action-helper.sh build_rook_all