Repository navigation
fixes #2625 Cherry picked the changes from develop-go to release-2.0.x #4886
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Go Package upon a push | |
| on: | |
| release: | |
| types: [published] | |
| pull_request: | |
| types: [opened, reopened, synchronize] | |
| workflow_dispatch: | |
| inputs: | |
| message: | |
| description: "Message for manually triggering" | |
| required: false | |
| default: "Triggered for Updates" | |
| type: string | |
| push: | |
| branches: | |
| - "!release-branch" | |
| - master | |
| - develop | |
| - develop-go | |
| - release* | |
| jobs: | |
| build_go_esignet: | |
| uses: mosip/kattu/.github/workflows/go-build.yml@master | |
| with: | |
| SERVICE_LOCATION: ./esignet-service | |
| BUILD_BINARY: esignet | |
| GO_VERSION: "1.26" | |
| secrets: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} | |
| sonar_analysis_go_esignet: | |
| needs: build_go_esignet | |
| if: "${{ github.event_name != 'pull_request' }}" | |
| uses: mosip/kattu/.github/workflows/go-sonar-analysis.yml@develop | |
| with: | |
| SERVICE_LOCATION: ./esignet-service | |
| GO_VERSION: '1.26' | |
| SONAR_EXCLUSIONS: '**/vendor/**,**/*_test.go,internal/clientmgmt/db/**,internal/consentmgmt/db/**,internal/keymanager/db/**' | |
| secrets: | |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
| ORG_KEY: ${{ secrets.ORG_KEY }} | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} | |
| build_dockers_esignet: | |
| needs: build_go_esignet | |
| strategy: | |
| matrix: | |
| include: | |
| - SERVICE_LOCATION: "esignet-service" | |
| SERVICE_NAME: "esignet" | |
| ONLY_DOCKER: true | |
| PLATFORMS: "linux/amd64,linux/arm64" | |
| fail-fast: false | |
| name: ${{ matrix.SERVICE_NAME }} | |
| uses: mosip/kattu/.github/workflows/docker-build.yml@master | |
| with: | |
| SERVICE_LOCATION: ${{ matrix.SERVICE_LOCATION }} | |
| SERVICE_NAME: ${{ matrix.SERVICE_NAME }} | |
| ONLY_DOCKER: ${{ matrix.ONLY_DOCKER }} | |
| PLATFORMS: ${{ matrix.PLATFORMS }} | |
| secrets: | |
| DEV_NAMESPACE_DOCKER_HUB: ${{ secrets.DEV_NAMESPACE_DOCKER_HUB }} | |
| ACTOR_DOCKER_HUB: ${{ secrets.ACTOR_DOCKER_HUB }} | |
| RELEASE_DOCKER_HUB: ${{ secrets.RELEASE_DOCKER_HUB }} | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} | |
| build-oidc-ui: | |
| uses: mosip/kattu/.github/workflows/npm-build.yml@develop | |
| with: | |
| SERVICE_LOCATION: oidc-ui | |
| BUILD_ARTIFACT: oidc | |
| NPM_BUILD_TYPE: BOB | |
| NODE_VERSION: "22" | |
| ZIP_DIR: dist | |
| secrets: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} | |
| sonar-analysis-oidc-ui: | |
| needs: build-oidc-ui | |
| if: "${{ github.event_name != 'pull_request' }}" | |
| uses: mosip/kattu/.github/workflows/npm-sonar-analysis.yml@develop | |
| with: | |
| SERVICE_LOCATION: oidc-ui | |
| NODE_VERSION: "22" | |
| secrets: | |
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
| ORG_KEY: ${{ secrets.ORG_KEY }} | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} | |
| build_dockers_oidc_ui: | |
| strategy: | |
| matrix: | |
| include: | |
| - SERVICE_LOCATION: "oidc-ui" | |
| SERVICE_NAME: "oidc-ui" | |
| SQUASH_LAYERS: "13" | |
| fail-fast: false | |
| name: ${{ matrix.SERVICE_NAME }} | |
| uses: mosip/kattu/.github/workflows/docker-build.yml@master-java21 | |
| with: | |
| SERVICE_LOCATION: ${{ matrix.SERVICE_LOCATION }} | |
| SERVICE_NAME: ${{ matrix.SERVICE_NAME }} | |
| SQUASH_LAYERS: ${{ matrix.SQUASH_LAYERS }} | |
| secrets: | |
| DEV_NAMESPACE_DOCKER_HUB: ${{ secrets.DEV_NAMESPACE_DOCKER_HUB }} | |
| ACTOR_DOCKER_HUB: ${{ secrets.ACTOR_DOCKER_HUB }} | |
| RELEASE_DOCKER_HUB: ${{ secrets.RELEASE_DOCKER_HUB }} | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} | |
| build-maven-uitest-esignet: | |
| uses: mosip/kattu/.github/workflows/maven-build.yml@master-java21 | |
| with: | |
| SERVICE_LOCATION: ./ui-test | |
| BUILD_ARTIFACT: uitest-esignet | |
| MAVEN_NON_EXEC_ARTIFACTS: "uitest-esignet.jar" | |
| secrets: | |
| OSSRH_USER: ${{ secrets.OSSRH_USER }} | |
| OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} | |
| OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} | |
| GPG_SECRET: ${{ secrets.GPG_SECRET }} | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} | |
| build-dockers-uitest-esignet: | |
| needs: build-maven-uitest-esignet | |
| strategy: | |
| matrix: | |
| include: | |
| - SERVICE_LOCATION: 'ui-test' | |
| SERVICE_NAME: 'uitest-esignet' | |
| BUILD_ARTIFACT: 'uitest-esignet' | |
| PLATFORMS: "linux/amd64" | |
| fail-fast: false | |
| name: ${{ matrix.SERVICE_NAME }} | |
| uses: mosip/kattu/.github/workflows/docker-build.yml@master-java21 | |
| with: | |
| SERVICE_LOCATION: ${{ matrix.SERVICE_LOCATION }} | |
| SERVICE_NAME: ${{ matrix.SERVICE_NAME }} | |
| BUILD_ARTIFACT: ${{ matrix.BUILD_ARTIFACT }} | |
| PLATFORMS: ${{ matrix.PLATFORMS }} | |
| secrets: | |
| DEV_NAMESPACE_DOCKER_HUB: ${{ secrets.DEV_NAMESPACE_DOCKER_HUB }} | |
| ACTOR_DOCKER_HUB: ${{ secrets.ACTOR_DOCKER_HUB }} | |
| RELEASE_DOCKER_HUB: ${{ secrets.RELEASE_DOCKER_HUB }} | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} | |
| # api-test: two Go modules (stdlib-only parent + nested api/, godog+gjson) in | |
| # one directory, so this stays a plain build/vet job rather than the | |
| # single-module go-build.yml reusable workflow (mirrors build_maven_apitest_esignet | |
| # from the retired Java rig — mosip/esignet#2209). | |
| build_go_apitest: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.26" | |
| # gofmt is checked explicitly: go vet does not look at formatting, and an | |
| # unformatted file merges cleanly and then shows up as noise in the next | |
| # PR's diff. | |
| - name: gofmt | |
| working-directory: api-test | |
| run: | | |
| unformatted="$(gofmt -l . )" | |
| if [ -n "$unformatted" ]; then | |
| echo "::error::gofmt needed on:"; echo "$unformatted" | |
| gofmt -d . | |
| exit 1 | |
| fi | |
| - name: build + vet + test (parent module) | |
| working-directory: api-test | |
| run: | | |
| go build ./... | |
| go vet ./... | |
| go test ./... | |
| # The api module's TestFeatures drives a live eSignet, so it is excluded | |
| # here: CI has no deployment to point it at. Everything else in the module | |
| # (step helpers, assertions, envelope writing) is unit-testable and runs. | |
| - name: vet + test (api module) | |
| working-directory: api-test/api | |
| run: | | |
| go vet ./... | |
| go test ./... -skip TestFeatures | |
| # Image build/publish only — same reusable workflow, same secrets, as every | |
| # other service image above. Scheduled test execution runs externally | |
| # against this image (Rancher docker run), not in GitHub Actions. | |
| build_dockers_apitest: | |
| needs: build_go_apitest | |
| strategy: | |
| matrix: | |
| include: | |
| - SERVICE_LOCATION: "api-test" | |
| SERVICE_NAME: "apitest-esignet" | |
| ONLY_DOCKER: true | |
| PLATFORMS: "linux/amd64,linux/arm64" | |
| fail-fast: false | |
| name: ${{ matrix.SERVICE_NAME }} | |
| uses: mosip/kattu/.github/workflows/docker-build.yml@master | |
| with: | |
| SERVICE_LOCATION: ${{ matrix.SERVICE_LOCATION }} | |
| SERVICE_NAME: ${{ matrix.SERVICE_NAME }} | |
| ONLY_DOCKER: ${{ matrix.ONLY_DOCKER }} | |
| PLATFORMS: ${{ matrix.PLATFORMS }} | |
| secrets: | |
| DEV_NAMESPACE_DOCKER_HUB: ${{ secrets.DEV_NAMESPACE_DOCKER_HUB }} | |
| ACTOR_DOCKER_HUB: ${{ secrets.ACTOR_DOCKER_HUB }} | |
| RELEASE_DOCKER_HUB: ${{ secrets.RELEASE_DOCKER_HUB }} | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} |