diff --git a/.github/workflows/dev-pre-mavencentral.yml b/.github/workflows/dev_build.yml similarity index 70% rename from .github/workflows/dev-pre-mavencentral.yml rename to .github/workflows/dev_build.yml index 4befca617..a33c04a07 100644 --- a/.github/workflows/dev-pre-mavencentral.yml +++ b/.github/workflows/dev_build.yml @@ -6,38 +6,43 @@ # separate terms of service, privacy policy, and support # documentation. -name: Development Build Pre Maven Central +name: GCM Development Build on: push: branches: [ "dev" ] - paths: - - '**.xml' - - '**.java' pull_request: - branches: [ "dev", "main" ] + branches-ignore: ["main", "master"] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout GCM - uses: actions/checkout@v3 - - name: Checkout Util - uses: actions/checkout@v3 - with: - repository: HHS/ASPR-ms-util - path: util + uses: actions/checkout@v4 + - name: Set up JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' cache: maven + + - name: Get Util Version + run: | + echo "util_version=v$(mvn help:evaluate -Dexpression=util.version -q -DforceStdout --file gcm/pom.xml)" >> "$GITHUB_ENV" + + - name: Checkout Util + uses: actions/checkout@v4 + with: + repository: HHS/ASPR-ms-util + path: util + ref: ${{ (endsWith(env.util_version, 'SNAPSHOT') && 'dev') || env.util_version }} + - name: Build Util run: mvn clean install -DskipTests --file util/pom.xml - name: Build GCM - run: mvn clean package --file gcm/pom.xml + run: mvn clean install --file gcm/pom.xml # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive # - name: Update dependency graph diff --git a/.github/workflows/create_release_on_tag.yml b/.github/workflows/release_build.yml similarity index 75% rename from .github/workflows/create_release_on_tag.yml rename to .github/workflows/release_build.yml index 84b2d86bf..159becc8f 100644 --- a/.github/workflows/create_release_on_tag.yml +++ b/.github/workflows/release_build.yml @@ -21,31 +21,40 @@ jobs: contents: write steps: - name: Checkout GCM - uses: actions/checkout@v3 - - name: Checkout Util - uses: actions/checkout@v3 - with: - repository: HHS/ASPR-ms-util - path: util + uses: actions/checkout@v4 + - name: Set up JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - cache: maven + + - name: Get Util Version + run: | + echo "util_version=v$(mvn help:evaluate -Dexpression=util.version -q -DforceStdout --file gcm/pom.xml)" >> "$GITHUB_ENV" + + - name: Checkout Util + uses: actions/checkout@v4 + with: + repository: HHS/ASPR-ms-util + path: util + ref: ${{ (endsWith(env.util_version, 'SNAPSHOT') && 'dev') || env.util_version }} + - name: Build Util run: mvn clean install -DskipTests --file util/pom.xml - name: Build GCM run: mvn clean install -Prelease --file gcm/pom.xml + - name: Get Version run: | echo "version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout --file gcm/pom.xml)" >> "$GITHUB_ENV" + - name: Make Release uses: ncipollo/release-action@v1 with: - artifacts: "gcm/target/gcm-${{ env.version }}.jar,gcm/target/gcm-${{ env.version }}-sources.jar,gcm/target/gcm-${{ env.version }}-javadoc.jar" + artifacts: "gcm/target/gcm-${{ env.version }}*.jar" prerelease: ${{ endsWith(env.version, 'SNAPSHOT') || contains(env.version, '-RC') }} name: "v${{ env.version }}" tag: "v${{ env.version }}" generateReleaseNotes: true - allowUpdates: true + skipIfReleaseExists: true diff --git a/.github/workflows/release_pr_build.yml b/.github/workflows/release_pr_build.yml new file mode 100644 index 000000000..34e7c0edf --- /dev/null +++ b/.github/workflows/release_pr_build.yml @@ -0,0 +1,46 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Pull Request for Main Build + +on: + pull_request: + branches: [ "main" ] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout GCM + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Get Util Version + run: | + echo "util_version=v$(mvn help:evaluate -Dexpression=util.version -q -DforceStdout --file gcm/pom.xml)" >> "$GITHUB_ENV" + + - name: Checkout Util + uses: actions/checkout@v4 + with: + repository: HHS/ASPR-ms-util + path: util + ref: ${{ (endsWith(env.util_version, 'SNAPSHOT') && 'dev') || env.util_version }} + + - name: Build Util + run: mvn clean install -DskipTests --file util/pom.xml + - name: Build GCM + run: mvn clean install -Prelease --file gcm/pom.xml + + # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive + # - name: Update dependency graph + # uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6