We had a discussion on slack about having a first build such as only ubuntu/jdk1,8 before running all the matrix and holding a lot of nodes from the Apache org.. This PR definitely does not do this! So I don't understand why this has been merged! Remember (as far I understand) nodes are shared between all projects from Apache org. There is no need to hold a lot of nodes if we are sure it fail (especially as Apache have a lot projects using gh-actions)
On Fri, 15 Oct 2021 at 07:52, <slachiew...@apache.org> wrote: > This is an automated email from the ASF dual-hosted git repository. > > slachiewicz pushed a commit to branch main > in repository > https://gitbox.apache.org/repos/asf/maven-gh-actions-shared.git > > > The following commit(s) were added to refs/heads/main by this push: > new eee837a first workflow > eee837a is described below > > commit eee837abbc62df4e1097841b7cec8c5db6b30e2a > Author: Slawomir Jaranowski <s.jaranow...@gmail.com> > AuthorDate: Thu Oct 14 22:41:33 2021 +0200 > > first workflow > --- > .github/workflows/maven-verify-with-its.yml | 67 +++++++++ > .gitignore | 1 + > LICENSE | 202 > ++++++++++++++++++++++++++++ > README.md | 43 +++++- > 4 files changed, 312 insertions(+), 1 deletion(-) > > diff --git a/.github/workflows/maven-verify-with-its.yml > b/.github/workflows/maven-verify-with-its.yml > new file mode 100644 > index 0000000..a24464d > --- /dev/null > +++ b/.github/workflows/maven-verify-with-its.yml > @@ -0,0 +1,67 @@ > +# Licensed to the Apache Software Foundation (ASF) under one > +# or more contributor license agreements. See the NOTICE file > +# distributed with this work for additional information > +# regarding copyright ownership. The ASF licenses this file > +# to you 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: Verify > + > +on: > + workflow_call: > + inputs: > + os-matrix: > + description: 'os matrix as json array' > + default: '[ "ubuntu-latest", "windows-latest", "macOS-latest" ]' > + type: string > + > + jdk-matrix: > + description: 'jdk matrix as json array' > + default: '[ "8", "11", "17" ]' > + type: string > + > + matrix-exclude: > + description: 'exclude for matrix as json' > + default: '[]' > + type: string > + > +jobs: > + > + verify: > + name: ${{ matrix.os }} jdk-${{ matrix.jdk }} > + > + runs-on: ${{ matrix.os }} > + > + strategy: > + fail-fast: true > + matrix: > + os: ${{ fromJSON( inputs.os-matrix ) }} > + jdk: ${{ fromJSON( inputs.jdk-matrix ) }} > + exclude: ${{ fromJSON( inputs.matrix-exclude ) }} > + > + steps: > + - name: Checkout > + uses: actions/checkout@v2.3.4 > + > + - name: Set up JDK > + uses: actions/setup-java@v2.3.1 > + with: > + java-version: ${{ matrix.jdk }} > + distribution: 'temurin' > + cache: 'maven' > + > + - name: Build with Maven > + run: mvn --errors --batch-mode --show-version -P run-its > -D"invoker.streamLogsOnFailures" verify > + > + - name: Build Maven Site > + run: mvn --errors --batch-mode --show-version site > diff --git a/.gitignore b/.gitignore > new file mode 100644 > index 0000000..485dee6 > --- /dev/null > +++ b/.gitignore > @@ -0,0 +1 @@ > +.idea > diff --git a/LICENSE b/LICENSE > new file mode 100644 > index 0000000..d645695 > --- /dev/null > +++ b/LICENSE > @@ -0,0 +1,202 @@ > + > + Apache License > + Version 2.0, January 2004 > + http://www.apache.org/licenses/ > + > + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION > + > + 1. Definitions. > + > + "License" shall mean the terms and conditions for use, reproduction, > + and distribution as defined by Sections 1 through 9 of this > document. > + > + "Licensor" shall mean the copyright owner or entity authorized by > + the copyright owner that is granting the License. > + > + "Legal Entity" shall mean the union of the acting entity and all > + other entities that control, are controlled by, or are under common > + control with that entity. For the purposes of this definition, > + "control" means (i) the power, direct or indirect, to cause the > + direction or management of such entity, whether by contract or > + otherwise, or (ii) ownership of fifty percent (50%) or more of the > + outstanding shares, or (iii) beneficial ownership of such entity. > + > + "You" (or "Your") shall mean an individual or Legal Entity > + exercising permissions granted by this License. > + > + "Source" form shall mean the preferred form for making > modifications, > + including but not limited to software source code, documentation > + source, and configuration files. > + > + "Object" form shall mean any form resulting from mechanical > + transformation or translation of a Source form, including but > + not limited to compiled object code, generated documentation, > + and conversions to other media types. > + > + "Work" shall mean the work of authorship, whether in Source or > + Object form, made available under the License, as indicated by a > + copyright notice that is included in or attached to the work > + (an example is provided in the Appendix below). > + > + "Derivative Works" shall mean any work, whether in Source or Object > + form, that is based on (or derived from) the Work and for which the > + editorial revisions, annotations, elaborations, or other > modifications > + represent, as a whole, an original work of authorship. For the > purposes > + of this License, Derivative Works shall not include works that > remain > + separable from, or merely link (or bind by name) to the interfaces > of, > + the Work and Derivative Works thereof. > + > + "Contribution" shall mean any work of authorship, including > + the original version of the Work and any modifications or additions > + to that Work or Derivative Works thereof, that is intentionally > + submitted to Licensor for inclusion in the Work by the copyright > owner > + or by an individual or Legal Entity authorized to submit on behalf > of > + the copyright owner. For the purposes of this definition, > "submitted" > + means any form of electronic, verbal, or written communication sent > + to the Licensor or its representatives, including but not limited to > + communication on electronic mailing lists, source code control > systems, > + and issue tracking systems that are managed by, or on behalf of, the > + Licensor for the purpose of discussing and improving the Work, but > + excluding communication that is conspicuously marked or otherwise > + designated in writing by the copyright owner as "Not a > Contribution." > + > + "Contributor" shall mean Licensor and any individual or Legal Entity > + on behalf of whom a Contribution has been received by Licensor and > + subsequently incorporated within the Work. > + > + 2. Grant of Copyright License. Subject to the terms and conditions of > + this License, each Contributor hereby grants to You a perpetual, > + worldwide, non-exclusive, no-charge, royalty-free, irrevocable > + copyright license to reproduce, prepare Derivative Works of, > + publicly display, publicly perform, sublicense, and distribute the > + Work and such Derivative Works in Source or Object form. > + > + 3. Grant of Patent License. Subject to the terms and conditions of > + this License, each Contributor hereby grants to You a perpetual, > + worldwide, non-exclusive, no-charge, royalty-free, irrevocable > + (except as stated in this section) patent license to make, have > made, > + use, offer to sell, sell, import, and otherwise transfer the Work, > + where such license applies only to those patent claims licensable > + by such Contributor that are necessarily infringed by their > + Contribution(s) alone or by combination of their Contribution(s) > + with the Work to which such Contribution(s) was submitted. If You > + institute patent litigation against any entity (including a > + cross-claim or counterclaim in a lawsuit) alleging that the Work > + or a Contribution incorporated within the Work constitutes direct > + or contributory patent infringement, then any patent licenses > + granted to You under this License for that Work shall terminate > + as of the date such litigation is filed. > + > + 4. Redistribution. You may reproduce and distribute copies of the > + Work or Derivative Works thereof in any medium, with or without > + modifications, and in Source or Object form, provided that You > + meet the following conditions: > + > + (a) You must give any other recipients of the Work or > + Derivative Works a copy of this License; and > + > + (b) You must cause any modified files to carry prominent notices > + stating that You changed the files; and > + > + (c) You must retain, in the Source form of any Derivative Works > + that You distribute, all copyright, patent, trademark, and > + attribution notices from the Source form of the Work, > + excluding those notices that do not pertain to any part of > + the Derivative Works; and > + > + (d) If the Work includes a "NOTICE" text file as part of its > + distribution, then any Derivative Works that You distribute must > + include a readable copy of the attribution notices contained > + within such NOTICE file, excluding those notices that do not > + pertain to any part of the Derivative Works, in at least one > + of the following places: within a NOTICE text file distributed > + as part of the Derivative Works; within the Source form or > + documentation, if provided along with the Derivative Works; or, > + within a display generated by the Derivative Works, if and > + wherever such third-party notices normally appear. The contents > + of the NOTICE file are for informational purposes only and > + do not modify the License. You may add Your own attribution > + notices within Derivative Works that You distribute, alongside > + or as an addendum to the NOTICE text from the Work, provided > + that such additional attribution notices cannot be construed > + as modifying the License. > + > + You may add Your own copyright statement to Your modifications and > + may provide additional or different license terms and conditions > + for use, reproduction, or distribution of Your modifications, or > + for any such Derivative Works as a whole, provided Your use, > + reproduction, and distribution of the Work otherwise complies with > + the conditions stated in this License. > + > + 5. Submission of Contributions. Unless You explicitly state otherwise, > + any Contribution intentionally submitted for inclusion in the Work > + by You to the Licensor shall be under the terms and conditions of > + this License, without any additional terms or conditions. > + Notwithstanding the above, nothing herein shall supersede or modify > + the terms of any separate license agreement you may have executed > + with Licensor regarding such Contributions. > + > + 6. Trademarks. This License does not grant permission to use the trade > + names, trademarks, service marks, or product names of the Licensor, > + except as required for reasonable and customary use in describing > the > + origin of the Work and reproducing the content of the NOTICE file. > + > + 7. Disclaimer of Warranty. Unless required by applicable law or > + agreed to in writing, Licensor provides the Work (and each > + Contributor provides its Contributions) on an "AS IS" BASIS, > + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > + implied, including, without limitation, any warranties or conditions > + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A > + PARTICULAR PURPOSE. You are solely responsible for determining the > + appropriateness of using or redistributing the Work and assume any > + risks associated with Your exercise of permissions under this > License. > + > + 8. Limitation of Liability. In no event and under no legal theory, > + whether in tort (including negligence), contract, or otherwise, > + unless required by applicable law (such as deliberate and grossly > + negligent acts) or agreed to in writing, shall any Contributor be > + liable to You for damages, including any direct, indirect, special, > + incidental, or consequential damages of any character arising as a > + result of this License or out of the use or inability to use the > + Work (including but not limited to damages for loss of goodwill, > + work stoppage, computer failure or malfunction, or any and all > + other commercial damages or losses), even if such Contributor > + has been advised of the possibility of such damages. > + > + 9. Accepting Warranty or Additional Liability. While redistributing > + the Work or Derivative Works thereof, You may choose to offer, > + and charge a fee for, acceptance of support, warranty, indemnity, > + or other liability obligations and/or rights consistent with this > + License. However, in accepting such obligations, You may act only > + on Your own behalf and on Your sole responsibility, not on behalf > + of any other Contributor, and only if You agree to indemnify, > + defend, and hold each Contributor harmless for any liability > + incurred by, or claims asserted against, such Contributor by reason > + of your accepting any such warranty or additional liability. > + > + END OF TERMS AND CONDITIONS > + > + APPENDIX: How to apply the Apache License to your work. > + > + To apply the Apache License to your work, attach the following > + boilerplate notice, with the fields enclosed by brackets "[]" > + replaced with your own identifying information. (Don't include > + the brackets!) The text should be enclosed in the appropriate > + comment syntax for the file format. We also recommend that a > + file or class name and description of purpose be included on the > + same "printed page" as the copyright notice for easier > + identification within third-party archives. > + > + Copyright [yyyy] [name of copyright owner] > + > + 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. > diff --git a/README.md b/README.md > index 39fc18c..dd50b5e 100644 > --- a/README.md > +++ b/README.md > @@ -1 +1,42 @@ > -# maven-gh-actions-shared > +# Apache Maven shared GitHub Actions > + > + > +# Usage > + > +Create GitHub workflow in project with content: > + > +```yaml > +name: Verify > + > +on: > + push: > + branches-ignore: > + - dependabot/** > + > + pull_request: > + > +jobs: > + build: > + name: Verify > + uses: > apache/maven-gh-actions-shared/.github/workflows/maven-verify-with-its.yml@main > + > +``` > + > +Excludes from build matrix: > + > +```yaml > +... > + uses: > apache/maven-gh-actions-shared/.github/workflows/maven-verify-with-its.yml@main > + with: > + matrix-exclude: > > + [ > + {"jdk": "8"}, # exclude jdk 8 from all builds > + {"os": "windows-latest"}, # exclude windows from all builds > + {"jdk": "8", "os": "windows-latest"} # exclude jkd 8 on windows > + ] > +``` > + > +# Resources > + > +- [Workflow syntax]( > https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions > ) > +- [Reusing workflows]( > https://docs.github.com/en/actions/learn-github-actions/reusing-workflows) > -- Olivier Lamy http://twitter.com/olamy | http://linkedin.com/in/olamy