name: Go on: push: branches: [ master ] pull_request: branches: [ master ] permissions: contents: read jobs: conditional-changes: runs-on: ubuntu-latest permissions: pull-requests: read outputs: doc: ${{ steps.filter.outputs.doc }} steps: - uses: actions/checkout@v6 - uses: dorny/paths-filter@v3 id: filter with: filters: | doc: - 'site/**' check-modules: name: check-synced-go-modules needs: conditional-changes # if: needs.conditional-changes.outputs.doc == 'false' runs-on: [ubuntu-latest] steps: - name: Check out code into the Go module directory uses: actions/checkout@v6 with: fetch-depth: 0 - name: Set up Go 1.x uses: actions/setup-go@v6 with: go-version-file: go.work id: go - name: sync go modules run: make workspace-sync - name: check for changes with 'make workspace-sync' run: git diff --exit-code lint: name: Lint needs: conditional-changes # if: needs.conditional-changes.outputs.doc == 'false' runs-on: [ubuntu-latest] steps: - name: Check out code into the Go module directory uses: actions/checkout@v6 with: fetch-depth: 0 - name: Set up Go 1.x uses: actions/setup-go@v6 with: go-version-file: go.work id: go - name: Lint run: make lint - name: Verify boilerplate run: make check-license test-linux: name: Test Linux needs: conditional-changes # if: needs.conditional-changes.outputs.doc == 'false' runs-on: [ubuntu-latest] steps: - name: Check out code into the Go module directory uses: actions/checkout@v6 - name: Set up Go 1.x uses: actions/setup-go@v6 with: go-version-file: go.work id: go - name: Test all modules run: make test-unit-non-plugin env: KUSTOMIZE_DOCKER_E2E: true test-macos: name: Test MacOS needs: conditional-changes # if: needs.conditional-changes.outputs.doc == 'false' runs-on: [macos-latest] steps: - name: Check out code into the Go module directory uses: actions/checkout@v6 - name: Set up Go 1.x uses: actions/setup-go@v6 with: go-version-file: go.work id: go - name: Test all modules run: make test-unit-non-plugin env: KUSTOMIZE_DOCKER_E2E: false # docker not installed on mac test-windows: name: Test Windows needs: conditional-changes # if: needs.conditional-changes.outputs.doc == 'false' runs-on: [windows-latest] steps: - name: Check out code into the Go module directory uses: actions/checkout@v6 - name: Set up Go 1.x uses: actions/setup-go@v6 with: go-version-file: go.work id: go - name: Test kyaml run: go test -cover ./... working-directory: ./kyaml - name: Test cmd/config run: go test -cover ./... working-directory: ./cmd/config env: KUSTOMIZE_DOCKER_E2E: false # docker on windows not working well yet # TODO (#4001): replace specific modules above with this once Windows tests are passing. #- name: Test all modules # run: make test-unit-non-plugin # env: # KUSTOMIZE_DOCKER_E2E: false # docker on windows not working well yet