Skip to content

ci-space/go-modules-action

Repository files navigation

go-modules-action

go-modules-action - GitHub action for get G0 modules from repository.

inputs: no

outputs:

  • modules
{
  "modules": [
    {
      "name": "module-name",
      "dir":  "./pkg/module-name"
    }
  ]
}

Usage

Detect and print modules

jobs:
  detect-modules:
    runs-on: ubuntu-latest
    outputs:
      modules: ${{ steps.get-modules.outputs.modules }}
    steps:
      - name: Check out code
        uses: actions/checkout@v2
      - name: Get GO modules
        uses: ci-space/go-modules-action@master
        id: get-modules
      - name: Print modules
        run: ${{ steps.get-modules.outputs.modules }}

Run test on each module

jobs:
  detect-modules:
    runs-on: ubuntu-latest
    outputs:
      modules: ${{ steps.get-modules.outputs.modules }}
    steps:
      - name: Check out code
        uses: actions/checkout@v2
      - name: Get GO modules
        uses: ci-space/go-modules-action@master
        id: get-modules

  unit-test:
    name: unit-test
    runs-on: ubuntu-latest
    needs: detect-modules

    strategy:
      matrix:
        module: ${{ fromJSON(needs.detect-modules.outputs.modules) }}

    steps:
      - name: Check out code
        uses: actions/checkout@v2

      - name: Set up Go
        uses: actions/setup-go@v4 # action page: <https://github.com/actions/setup-go>
        with:
          go-version: stable
          cache-dependency-path: ${{ matrix.module.dir }}/go.sum

      - name: Install Go dependencies
        run: cd ${{ matrix.module.dir }} && go mod download

      - name: Run tests
        run: cd ${{ matrix.module.dir }} && go test ./...

Run lint on each module

jobs:
  detect-modules:
    runs-on: ubuntu-latest
    outputs:
      modules: ${{ steps.get-modules.outputs.modules }}
    steps:
      - name: Check out code
        uses: actions/checkout@v2
      - name: Get GO modules
        uses: ci-space/go-modules-action@master
        id: get-modules

  code-lint:
    name: code-lint
    runs-on: ubuntu-latest
    needs: detect-modules

    strategy:
      matrix:
        module: ${{ fromJSON(needs.detect-modules.outputs.modules) }}

    steps:
      - name: Check out code
        uses: actions/checkout@v2

      - name: Set up Go
        uses: actions/setup-go@v4 # action page: <https://github.com/actions/setup-go>
        with:
          go-version: stable
          cache-dependency-path: ${{ matrix.module.dir }}/go.sum

      - name: Install Go dependencies
        run: cd ${{ matrix.module.dir }} && go mod download

      - name: Run lint
        uses: golangci/golangci-lint-action@v6
        with:
          version: v1.60
          working-directory: ${{ matrix.module.dir }}

About

GitHub action for get Go modules from repository.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •