{"id":30510,"date":"2022-06-28T21:31:40","date_gmt":"2022-06-28T21:31:40","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=30510"},"modified":"2022-12-23T05:52:30","modified_gmt":"2022-12-23T05:52:30","slug":"github-actions-workflow-example-with-maven","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/github-actions-workflow-example-with-maven\/","title":{"rendered":"GitHub Actions: Workflow Example with Maven"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">name: Maven CI\/CD\n\n<span class=\"hljs-attr\">on<\/span>:\n push:\n    branches: &#91; master ]\n  <span class=\"hljs-attr\">pull_request<\/span>:\n    branches: &#91; master ]\n\n<span class=\"hljs-attr\">jobs<\/span>:\n  build_and_test:\n\n    runs-on: ubuntu-latest\n\n    <span class=\"hljs-attr\">steps<\/span>:\n    - uses: actions\/checkout@v2\n    - name: <span class=\"hljs-built_in\">Set<\/span> up JDK <span class=\"hljs-number\">14<\/span>\n      <span class=\"hljs-attr\">uses<\/span>: actions\/setup-java@v1\n      <span class=\"hljs-attr\">with<\/span>:\n        java-version: <span class=\"hljs-number\">14<\/span>\n\n    - name: Build project <span class=\"hljs-keyword\">with<\/span> Maven\n      <span class=\"hljs-attr\">run<\/span>: mvn -B package --file pom.xml<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">name: Java CI\n\n<span class=\"hljs-attr\">on<\/span>: &#91;push]\n\n<span class=\"hljs-attr\">jobs<\/span>:\n  build:\n    runs-on: ubuntu-latest\n\n    <span class=\"hljs-attr\">steps<\/span>:\n      - uses: actions\/checkout@v3\n      - name: <span class=\"hljs-built_in\">Set<\/span> up JDK <span class=\"hljs-number\">17<\/span>\n        <span class=\"hljs-attr\">uses<\/span>: actions\/setup-java@v3\n        <span class=\"hljs-attr\">with<\/span>:\n          java-version: <span class=\"hljs-string\">'17'<\/span>\n          <span class=\"hljs-attr\">distribution<\/span>: <span class=\"hljs-string\">'adopt'<\/span>\n      - name: Build <span class=\"hljs-keyword\">with<\/span> Maven\n        <span class=\"hljs-attr\">run<\/span>: mvn --batch-mode --update-snapshots package<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">name: Feature Branch\n\n<span class=\"hljs-attr\">on<\/span>:\n  push:\n    branches-ignore:\n      - <span class=\"hljs-string\">'master'<\/span>\n      - <span class=\"hljs-string\">'release*'<\/span>\n\n<span class=\"hljs-attr\">jobs<\/span>:\n\n  test:\n    name: Unit Test\n    runs-on: ubuntu<span class=\"hljs-number\">-18.04<\/span>\n\n    <span class=\"hljs-attr\">steps<\/span>:\n      - uses: actions\/checkout@v1\n      - name: <span class=\"hljs-built_in\">Set<\/span> up JDK <span class=\"hljs-number\">11<\/span>\n        <span class=\"hljs-attr\">uses<\/span>: actions\/setup-java@v1\n        <span class=\"hljs-attr\">with<\/span>:\n          java-version: <span class=\"hljs-number\">1.11<\/span>\n      - name: Maven Package\n        <span class=\"hljs-attr\">run<\/span>: mvn -B clean package -DskipTests\n      - name: Maven Verify\n        <span class=\"hljs-attr\">run<\/span>: mvn -B clean verify<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">name: Java CI <span class=\"hljs-keyword\">with<\/span> Maven\r\n\r\n<span class=\"hljs-attr\">on<\/span>:\r\n  push:\r\n    branches: &#91; main ]\r\n  <span class=\"hljs-attr\">pull_request<\/span>:\r\n    branches: &#91; main ]\r\n\r\n<span class=\"hljs-attr\">jobs<\/span>:\r\n  build:\r\n\r\n    runs-on: ubuntu-latest\r\n    <span class=\"hljs-attr\">strategy<\/span>:\r\n      matrix:\r\n        java-version: &#91; <span class=\"hljs-number\">8.0<\/span><span class=\"hljs-number\">.192<\/span>, <span class=\"hljs-number\">8<\/span>, <span class=\"hljs-number\">11.0<\/span><span class=\"hljs-number\">.3<\/span>, <span class=\"hljs-number\">17<\/span>, <span class=\"hljs-number\">18<\/span>-ea ]\r\n    <span class=\"hljs-attr\">steps<\/span>:\r\n    - uses: actions\/checkout@v2\r\n    - name: <span class=\"hljs-built_in\">Set<\/span> up JDK ${{ matrix.java-version }}\r\n      <span class=\"hljs-attr\">uses<\/span>: actions\/setup-java@v2\r\n      <span class=\"hljs-attr\">with<\/span>:\r\n        java-version: ${{ matrix.java-version }}\r\n        <span class=\"hljs-attr\">distribution<\/span>: <span class=\"hljs-string\">'zulu'<\/span>\r\n        <span class=\"hljs-attr\">cache<\/span>: maven\r\n    - name: Build <span class=\"hljs-keyword\">with<\/span> Maven\r\n      <span class=\"hljs-attr\">run<\/span>: mvn -B package --file pom.xml<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-30510","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/30510","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=30510"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/30510\/revisions"}],"predecessor-version":[{"id":30515,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/30510\/revisions\/30515"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=30510"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=30510"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=30510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}