Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For steps to manually publish the artefacts see How to upload and use maven jar artifactsAndroid client libraries on Maven/Sonatype

Github Actions CI

You can create a new Github action workflow file and name it release.yml with the following sample configuration used for building, signing and publishing the FHIR Core Quest application as a Github release.

NOTE: Remember to update the content with the module names corresponding to your project.

Code Block
languageyaml
# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle

name: Snapshot Release

on:
  push:
    tags:
      - v[0-9]+.[0-9]+.[0-9]+-SNAPSHOT
      - v[0-9]+.[0-9]+.[0-9]+-[0-9a-zA-Z]+-SNAPSHOT
      - v[0-9]+.[0-9]+.[0-9]+-[0-9a-zA-Z]+-[0-9a-zA-Z]+-SNAPSHOT
env: 
 NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
 NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - name: Cancel previous workflow runs
        uses: styfle/cancel-workflow-action@0.9.1
        with:
          access_token: ${{ github.token }} 

      - name: Checkout 🛎️
        uses: actions/checkout@v2
        with:
          fetch-depth: 2

      - name: Set up JDK 11
        uses: actions/setup-java@v1
        with:
          java-version: 11
      
      - name: Grant execute permission for gradlew
        run: chmod +x gradlew
      
      - name: Run unit tests with Gradle
        run: ./gradlew :opensrp-core:clean :opensrp-core:testDebugUnitTest --stacktrace  
 
      - name: Generate & upload library snapshot artifact AAR (Android Archive) file
        run: ./gradlew :opensrp-core:uploadArchives -PmavenLocal=false --stacktrace -PsonatypeUsername=${{ secrets.NEXUS_USERNAME }} -PsonatypePassword=${{ secrets.NEXUS_PASSWORD }}

      - name: Github Release
        uses: softprops/action-gh-release@v1
        with:
          prerelease: ${{ contains(github.ref, '-alpha') || contains(github.ref, '-beta') }}

Publishing via TAG

As part of integrating Continuous Delivery(CD) into the development lifecycle, CI has been set up to trigger artefact generation. The configuration requires the tag to have a prefix in the glob pattern formats:

v[0-9]+.[0-9]+.[0-9]+-SNAPSHOT

...