From 1fdfa1a17c323c94590aceb718bd5c5be53fc55b Mon Sep 17 00:00:00 2001 From: Wenjie Guo Date: Mon, 29 Jan 2024 10:58:27 +0800 Subject: [PATCH] Add github actions --- .github/workflows/merge-build.yml | 98 +++++++++++++++++++++++++++++++ .github/workflows/pr-build.yml | 44 ++++++++++++++ 2 files changed, 142 insertions(+) create mode 100644 .github/workflows/merge-build.yml create mode 100644 .github/workflows/pr-build.yml diff --git a/.github/workflows/merge-build.yml b/.github/workflows/merge-build.yml new file mode 100644 index 0000000..7207cc7 --- /dev/null +++ b/.github/workflows/merge-build.yml @@ -0,0 +1,98 @@ +# +# Copyright (C) 2023 Red Hat, Inc. (https://github.com/Commonjava/indy-generic-proxy-service) +# +# 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. +# + +# This workflow will build a Java project with Maven +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Merge / Push Build + +on: [push] + +jobs: + publish-snapshot: + name: publish to oss sonatype & push image + + runs-on: ubuntu-latest + + permissions: + contents: read + packages: write + + env: + MAVEN_OPTS: "-Xmx4096m -Xms2048m -XX:MaxMetaspaceSize=4096m -Xss8m" + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + architecture: x64 + java-version: 11 + + - name: maven-settings-xml-action + uses: whelk-io/maven-settings-xml-action@v14 + if: ${{ github.event.repository.fork == false }} + with: + repositories: '[{ "id": "sonatype", "url": "https://oss.sonatype.org/content/repositories/snapshots/", "releases": {"enabled": "false"}, "snapshots": {"enabled": "true" }}]' + servers: '[{ "id": "sonatype", "username": "${{ secrets.SONATYPE_BOT_USERNAME}}", "password": "${{ secrets.SONATYPE_BOT_TOKEN}}" }]' + + - name: "Maven Verify" + if: ${{ github.event.repository.fork == true }} + run: mvn -B -e verify + + - name: "Maven Build & Deploy Snapshot to Sonatype OSSRH" + if: ${{ github.event.repository.fork == false }} + run: mvn -B -e deploy -DaltDeploymentRepository=sonatype::default::https://oss.sonatype.org/content/repositories/snapshots/ + + - name: Checkout tools repo + uses: actions/checkout@v4 + with: + repository: Commonjava/commonjava-images + path: commonjava-images + + - name: Locate artifacts + id: locate-artifacts + run: | + tarball=$(ls -d $PWD/target/*-runner.jar) + cp "$tarball" "commonjava-images/indy-generic-proxy-service/indy-generic-proxy-service-runner.jar" + + - name: Log in to Quay.io + uses: redhat-actions/podman-login@v1 + with: + username: ${{ secrets.QUAY_USERNAME }} + password: ${{ secrets.QUAY_ROBOT_TOKEN }} + registry: quay.io + + - name: Buildah build + id: buildah-build + uses: redhat-actions/buildah-build@v2 + with: + image: indy-generic-proxy-service + tags: ${{ github.ref_name }} + platforms: linux/amd64 + containerfiles: | + commonjava-images/indy-generic-proxy-service/actions.Dockerfile + context: commonjava-images/indy-generic-proxy-service/ + + - name: Push To quay.io + id: push-to-quay + uses: redhat-actions/push-to-registry@v2 + with: + image: ${{ steps.buildah-build.outputs.image }} + tags: ${{ steps.buildah-build.outputs.tags }} + registry: quay.io/factory2 \ No newline at end of file diff --git a/.github/workflows/pr-build.yml b/.github/workflows/pr-build.yml new file mode 100644 index 0000000..a865c77 --- /dev/null +++ b/.github/workflows/pr-build.yml @@ -0,0 +1,44 @@ +# +# Copyright (C) 2023 Red Hat, Inc. (https://github.com/Commonjava/indy-generic-proxy-service) +# +# 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. +# + +# This workflow will build a Java project with Maven +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: PR Build + +on: [pull_request] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up JDK + uses: actions/setup-java@v2 + with: + java-version: '11' + distribution: 'adopt' + + - name: maven-settings-xml-action + uses: whelk-io/maven-settings-xml-action@v14 + with: + repositories: '[{ "id": "sonatype", "url": "https://oss.sonatype.org/content/repositories/snapshots/", "releases": {"enabled": "false"}, "snapshots": {"enabled": "true" }}]' + + - name: Build with Maven + run: mvn -B -e verify \ No newline at end of file