From a737abb615c68affc7f58b7b8a7bd5ac3e97893e Mon Sep 17 00:00:00 2001 From: Appu Goundan Date: Thu, 25 Jul 2024 13:11:42 -0400 Subject: [PATCH] Update maven helper plugin build Fix breakages Add e2e tests for maven Signed-off-by: Appu Goundan Signed-off-by: Ramon Petgrave --- .github/workflows/pre-submit.e2e.maven.yml | 57 ++++++ .gitignore | 3 + .../maven/publish/slsa-hashing-plugin/pom.xml | 32 +++- e2e/README.md | 3 + e2e/maven/workflow_dispatch/pom.xml | 163 ++++++++++++++++++ .../src/main/java/hello/Greeter.java | 7 + .../src/main/java/hello/HelloWorld.java | 8 + 7 files changed, 271 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/pre-submit.e2e.maven.yml create mode 100644 e2e/README.md create mode 100644 e2e/maven/workflow_dispatch/pom.xml create mode 100644 e2e/maven/workflow_dispatch/src/main/java/hello/Greeter.java create mode 100644 e2e/maven/workflow_dispatch/src/main/java/hello/HelloWorld.java diff --git a/.github/workflows/pre-submit.e2e.maven.yml b/.github/workflows/pre-submit.e2e.maven.yml new file mode 100644 index 0000000000..92e23ccc48 --- /dev/null +++ b/.github/workflows/pre-submit.e2e.maven.yml @@ -0,0 +1,57 @@ +# Copyright 2023 SLSA Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: pre-submit e2e maven + +on: + # builder_maven_slsa3.yml relies on .github/actions/verify-token, which does not support merge_group and pull_request events. + push: + workflow_dispatch: + +permissions: read-all + +env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +jobs: + build: + permissions: + id-token: write # For signing. + contents: read # For repo checkout of private repos. + actions: read # For getting workflow run on private repos. + uses: slsa-framework/slsa-github-generator/.github/workflows/builder_maven_slsa3.yml@main + with: + directory: ./e2e/maven/workflow_dispatch + + verify: + runs-on: ubuntu-latest + needs: [build] + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: slsa-framework/slsa-github-generator/actions/maven/secure-download-attestations@main + with: + name: "${{ needs.build.outputs.provenance-download-name }}" + sha256: "${{ needs.build.outputs.provenance-download-sha256 }}" + path: ./ + - uses: slsa-framework/slsa-github-generator/actions/maven/secure-download-target@main + with: + name: "${{ needs.build.outputs.target-download-name }}" + sha256: "${{ needs.build.outputs.target-download-sha256 }}" + path: ./ + - uses: slsa-framework/slsa-verifier/actions/installer@v2.6.0 + - name: Verify artifact + env: + PROVENANCE_PATH: ${{ needs.build.outputs.provenance-download-name }} + TARGET_PATH: ${{ needs.build.outputs.target-download-name }} + run: slsa-verifier verify-artifact "$TARGET_PATH" --provenance-path "$PROVENANCE_PATH" diff --git a/.gitignore b/.gitignore index 77e055a35a..70655fbcc4 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,9 @@ vendor/ node_modules/ +# maven +target/ + # Go workspace file go.work go.work.sum diff --git a/actions/maven/publish/slsa-hashing-plugin/pom.xml b/actions/maven/publish/slsa-hashing-plugin/pom.xml index bcb90123e2..d6c67a1aa6 100644 --- a/actions/maven/publish/slsa-hashing-plugin/pom.xml +++ b/actions/maven/publish/slsa-hashing-plugin/pom.xml @@ -10,6 +10,7 @@ Jarfile Hashing Maven Mojo http://maven.apache.org + A slsa maven helper plugin 1.8 @@ -21,6 +22,7 @@ org.apache.maven maven-plugin-api 3.9.8 + provided org.apache.maven.plugin-tools @@ -30,8 +32,9 @@ org.apache.maven - maven-project - 2.2.1 + maven-core + 3.9.8 + provided org.json @@ -39,4 +42,29 @@ 20231013 + + + + + org.apache.maven.plugins + maven-plugin-plugin + 3.6.0 + + true + + + + default-descriptor + process-classes + + + help-goal + + helpmojo + + + + + + diff --git a/e2e/README.md b/e2e/README.md new file mode 100644 index 0000000000..99f7cbb53a --- /dev/null +++ b/e2e/README.md @@ -0,0 +1,3 @@ +# E2E Tests + +This folder contains test data for some end-to-end (E2E) tests. diff --git a/e2e/maven/workflow_dispatch/pom.xml b/e2e/maven/workflow_dispatch/pom.xml new file mode 100644 index 0000000000..601bd71e49 --- /dev/null +++ b/e2e/maven/workflow_dispatch/pom.xml @@ -0,0 +1,163 @@ + + + 4.0.0 + io.github.adamkorcz + test-java-project + 1.21.97 + jar + Adams test java project + A test java project. + https://github.com/AdamKorcz/test-java-project + + 1.8 + 1.8 + + + + ossrh + https://s01.oss.sonatype.org/content/repositories/snapshots + + + ossrh + https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + MIT License + http://www.opensource.org/licenses/mit-license.php + + + + + Adam K + Adam@adalogics.com + Ada Logics + http://www.adalogics.com + + + + scm:git:git://github.com/adamkorcz/test-java-project.git + scm:git:ssh://github.com:simpligility/test-java-project.git + http://github.com/adamkorcz/test-java-project/tree/main + + + + + org.apache.maven.plugins + maven-source-plugin + 3.3.1 + + + attach-sources + package + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.6.3 + + ${java.home}/bin/javadoc + + + + attach-javadocs + + jar + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.5.1 + + + package + + shade + + + + + hello.HelloWorld + + + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.13 + true + + ossrh + https://s01.oss.sonatype.org/ + false + + + + org.apache.maven.plugins + maven-gpg-plugin + 3.1.0 + + + sign-artifacts + verify + + sign + + + + + + --pinentry-mode + loopback + + + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.2 + + + deploy-file + deploy + + deploy-file + + + textfile.txt + https://s01.oss.sonatype.org/ + io.github.adamkorcz + + + + + + io.github.slsa-framework.slsa-github-generator + hash-maven-plugin + 0.0.1 + + + + hash-jarfile + + + + + ${SLSA_OUTPUTS_ARTIFACTS_FILE} + + + + + diff --git a/e2e/maven/workflow_dispatch/src/main/java/hello/Greeter.java b/e2e/maven/workflow_dispatch/src/main/java/hello/Greeter.java new file mode 100644 index 0000000000..f92a442354 --- /dev/null +++ b/e2e/maven/workflow_dispatch/src/main/java/hello/Greeter.java @@ -0,0 +1,7 @@ +package hello; + +public class Greeter { + public String sayHello() { + return "Hello world!"; + } +} diff --git a/e2e/maven/workflow_dispatch/src/main/java/hello/HelloWorld.java b/e2e/maven/workflow_dispatch/src/main/java/hello/HelloWorld.java new file mode 100644 index 0000000000..1626b45cbd --- /dev/null +++ b/e2e/maven/workflow_dispatch/src/main/java/hello/HelloWorld.java @@ -0,0 +1,8 @@ +package hello; + +public class HelloWorld { + public static void main(String[] args) { + Greeter greeter = new Greeter(); + System.out.println(greeter.sayHello()); + } +}