From d3d871498c18cdad73f0a253dbdec279cc6ca89b Mon Sep 17 00:00:00 2001 From: SimonIT Date: Thu, 31 Oct 2024 13:58:01 +0100 Subject: [PATCH] ci: Migrate to new publishing flow, allowing for snapshots and release using actions --- .github/workflows/build-pullrequest.yml | 31 +++++++++++++++ .github/workflows/gradle.yml | 35 ----------------- .github/workflows/main.yml | 52 +++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 35 deletions(-) create mode 100644 .github/workflows/build-pullrequest.yml delete mode 100644 .github/workflows/gradle.yml create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/build-pullrequest.yml b/.github/workflows/build-pullrequest.yml new file mode 100644 index 0000000..ad539b8 --- /dev/null +++ b/.github/workflows/build-pullrequest.yml @@ -0,0 +1,31 @@ +name: Build pull request + +on: + pull_request: + branches: [ master ] +permissions: + contents: read + +jobs: + build-java: + if: "!contains(github.event.head_commit.message, 'ci skip')" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3.0.0 + with: + fetch-depth: 0 + submodules: 'recursive' + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: '17' + + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + + - name: Build & test Java code + run: | + ./gradlew build + ./gradlew test diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml deleted file mode 100644 index b00c92f..0000000 --- a/.github/workflows/gradle.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Build - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Gradle cache - uses: actions/cache@v2 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} - restore-keys: | - ${{ runner.os }}-gradle- - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - - name: Build - run: ./gradlew build - - name: Upload debug apk - uses: actions/upload-artifact@v2 - with: - name: snapshots-jars - path: '**/build/libs/' \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..d90cf07 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,52 @@ +name: Build and deploy + +on: + push: + branches: [ master ] + release: + types: [ published ] + +env: + GRADLE_USER_HOME: .gradle + +jobs: + linux: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + submodules: 'recursive' + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + - name: Build with Gradle + run: ./gradlew build + - name: Upload all output libs + uses: actions/upload-artifact@v3.0.0 + with: + name: output-libs + path: "*/build/libs" + + - name: Snapshot build deploy + if: github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository_owner == 'libgdx' + run: ./gradlew build publish + env: + ORG_GRADLE_PROJECT_NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} + ORG_GRADLE_PROJECT_NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} + + - name: Import GPG key + if: github.event_name == 'release' && github.repository_owner == 'libgdx' + id: import_gpg + uses: crazy-max/ghaction-import-gpg@1c6a9e9d3594f2d743f1b1dd7669ab0dfdffa922 + with: + gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} + passphrase: ${{ secrets.GPG_PASSPHRASE }} + - name: Release build deploy + if: github.event_name == 'release' && github.repository_owner == 'libgdx' + run: ./gradlew build publish -PRELEASE -Psigning.gnupg.keyId=${{ secrets.GPG_KEYID }} -Psigning.gnupg.passphrase=${{ secrets.GPG_PASSPHRASE }} -Psigning.gnupg.keyName=${{ secrets.GPG_KEYID }} + env: + ORG_GRADLE_PROJECT_NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} + ORG_GRADLE_PROJECT_NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}