name: Reusable workflow. Using to build and publish lib to GitHub Packages on: workflow_call: inputs: MODULE_NAME: description: "Using for choice specified module when build application." required: true type: string IS_TEST_ENABLED: description: "Using for start test before pushing to ECR if value is true." default: false type: boolean secrets: SECRET_GITHUB_TOKEN: required: true SECRET_GITHUB_USERNAME: required: true jobs: api-multi-module-lib-publish: runs-on: self-hosted steps: - uses: actions/checkout@v2 - name: Set up JDK 17 uses: actions/setup-java@v1 with: java-version: 17 server-id: github settings-path: ${{ github.workspace }} - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Test with Gradle if: ${{ inputs.IS_TEST_ENABLED }} run: ./gradlew test -p ${{ inputs.MODULE_NAME }} env: GITHUB_TOKEN: ${{ secrets.SECRET_GITHUB_TOKEN }} GITHUB_USERNAME: ${{ secrets.SECRET_GITHUB_USERNAME }} - name: Validate Gradle wrapper uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b - name: Publish package run: ./gradlew publish -p ${{ inputs.MODULE_NAME }} env: GITHUB_TOKEN: ${{ secrets.SECRET_GITHUB_TOKEN }} GITHUB_USERNAME: ${{ secrets.SECRET_GITHUB_USERNAME }}