add workflow_call #23
This file contains 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: Release | ||
on: | ||
workflow_dispatch: {} | ||
push: | ||
branches: | ||
- main | ||
env: | ||
SIGNING_KEY_FILE_PATH: /home/runner/secretKey.gpg | ||
jobs: | ||
lint: | ||
uses: ./.github/workflows/lint.yml | ||
test: | ||
uses: ./.github/workflows/test.yml | ||
build: | ||
uses: ./.github/workflows/build.yml | ||
build: | ||
name: Build | ||
runs-on: ubuntu-latest | ||
env: | ||
SIGNING_KEY_FILE_PATH: /home/runner/secretKey.gpg | ||
strategy: | ||
matrix: | ||
codebase: [library, demo] | ||
steps: | ||
- name: Checkout repo | ||
uses: actions/checkout@v3 | ||
- name: Set up JDK 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
java-version: '17' | ||
distribution: 'temurin' | ||
cache: gradle | ||
#After decoding the secret key, place the file in ~ /. Gradle/ secring.gpg | ||
- name: Decode Signing Key | ||
uses: ./.github/actions/decode_signing_key_action | ||
with: | ||
signing_key_file: ${{ secrets.SIGNING_KEY_FILE }} | ||
signing_file_path: ${{ env.SIGNING_KEY_FILE_PATH }} | ||
- name: Assemble | ||
run: ./gradlew --stacktrace assemble -x :demo:assemble # we exclude Demo module in assemble | ||
env: | ||
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }} | ||
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} | ||
SIGNING_KEY_FILE: ${{ env.SIGNING_KEY_FILE_PATH }} | ||
- run: echo "Build status report=${{ job.status }}." | ||
release: | ||
name: Release | ||
needs: [build] | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
issues: write | ||
pull-requests: write | ||
steps: | ||
- name: Checkout repo | ||
uses: actions/checkout@v3 | ||
with: | ||
# pulls all commits (needed for semantic release to correctly version) | ||
fetch-depth: '0' | ||
persist-credentials: false | ||
- name: Set up JDK 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
java-version: '17' | ||
distribution: 'temurin' | ||
cache: gradle | ||
- name: Install Dependencies | ||
run: | | ||
npm i -g @semantic-release/exec @semantic-release/changelog @semantic-release/git [email protected] | ||
# - name: GitHub Release | ||
# env: | ||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
# run: npx semantic-release@21 | ||
- name: Publish to Maven | ||
run: echo "Publish to Maven" | ||
# after build and unit tests are finished, publish all modules at once | ||
# to help reduce the probability of failure when interacting with sonatype servers | ||
publish_all_modules: | ||
needs: [build] | ||
name: Publish All Modules To Sonatype | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout Repository | ||
uses: actions/checkout@v2 | ||
- name: Set up JDK 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
java-version: '17' | ||
distribution: 'temurin' | ||
cache: gradle | ||
- name: Decode Signing Key | ||
uses: ./.github/actions/decode_signing_key_action | ||
with: | ||
signing_key_file: ${{ secrets.SIGNING_KEY_FILE }} | ||
signing_file_path: ${{ env.SIGNING_KEY_FILE_PATH }} | ||
# - name: Update Version | ||
# run: | | ||
# ./gradlew -PversionParam=${{ github.event.inputs.version }} changeReleaseVersion | ||
- name: Publish All Modules | ||
uses: ./.github/actions/publish_all_modules | ||
with: | ||
sonatype_usr: ${{ secrets.SONATYPE_NEXUS_USERNAME }} | ||
sonatype_pwd: ${{ secrets.SONATYPE_NEXUS_PASSWORD }} | ||
signing_key_id: ${{ secrets.SIGNING_KEY_ID }} | ||
signing_key_pwd: ${{ secrets.SIGNING_KEY_PASSWORD }} | ||
signing_key_file: ${{ env.SIGNING_KEY_FILE_PATH }} |