Make workflows work on GitHub and Gitea
Some checks failed
Dev Verify / verify (push) Failing after 26s

This commit is contained in:
2026-04-06 17:38:21 -05:00
parent 43630597dd
commit 988c2338fd
4 changed files with 142 additions and 43 deletions

View File

@@ -12,24 +12,18 @@ on:
jobs: jobs:
verify: verify:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container:
image: gradle:8.11.1-jdk21
env:
GITEA_TOKEN: ${{ github.token }}
GITEA_REPO_URL: ${{ github.server_url }}/${{ github.repository }}.git
steps: steps:
- name: Prepare source - name: Check out
shell: bash uses: actions/checkout@v4
run: |
set -euo pipefail
if [ ! -f build.gradle ]; then - name: Set up Java
git -c http.extraHeader="Authorization: token ${GITEA_TOKEN}" \ uses: actions/setup-java@v4
clone --depth 1 "${GITEA_REPO_URL}" . with:
fi distribution: temurin
java-version: 21
- name: Verify - name: Verify
shell: bash shell: bash
run: | run: |
set -euo pipefail set -euo pipefail
gradle --no-daemon compileClientJava bash ./gradlew --no-daemon compileClientJava

View File

@@ -14,31 +14,21 @@ permissions:
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container:
image: gradle:8.11.1-jdk21
env:
GITEA_TOKEN: ${{ github.token }}
GITEA_API_URL: ${{ github.server_url }}/api/v1
GITEA_REPO: ${{ github.repository }}
GITEA_REPO_URL: ${{ github.server_url }}/${{ github.repository }}.git
GITEA_REF_NAME: ${{ github.ref_name }}
GITEA_SHA: ${{ github.sha }}
steps: steps:
- name: Prepare source - name: Check out
shell: bash uses: actions/checkout@v4
run: |
set -euo pipefail
if [ ! -f build.gradle ]; then - name: Set up Java
git -c http.extraHeader="Authorization: token ${GITEA_TOKEN}" \ uses: actions/setup-java@v4
clone --depth 1 "${GITEA_REPO_URL}" . with:
fi distribution: temurin
java-version: 21
- name: Build - name: Build
shell: bash shell: bash
run: | run: |
set -euo pipefail set -euo pipefail
gradle --no-daemon build bash ./gradlew --no-daemon build
- name: Publish Gitea release - name: Publish Gitea release
if: github.event_name != 'pull_request' if: github.event_name != 'pull_request'
@@ -48,12 +38,12 @@ jobs:
jar_path="$(ls -1 build/libs/*.jar | head -n 1)" jar_path="$(ls -1 build/libs/*.jar | head -n 1)"
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
release_tag="${GITEA_REF_NAME}" release_tag="${GITHUB_REF_NAME}"
release_name="${GITEA_REF_NAME}" release_name="${GITHUB_REF_NAME}"
prerelease=false prerelease=false
else else
release_tag="build-${GITEA_SHA:0:7}" release_tag="build-${GITHUB_SHA:0:7}"
release_name="build-${GITEA_SHA:0:7}" release_name="build-${GITHUB_SHA:0:7}"
prerelease=true prerelease=true
fi fi
@@ -61,10 +51,10 @@ jobs:
"${release_tag}" "${release_name}" "${release_name}" "${prerelease}")" "${release_tag}" "${release_name}" "${release_name}" "${prerelease}")"
release_json="$(curl -fsS \ release_json="$(curl -fsS \
-H "Authorization: token ${GITEA_TOKEN}" \ -H "Authorization: token ${GITHUB_TOKEN}" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d "${release_payload}" \ -d "${release_payload}" \
"${GITEA_API_URL}/repos/${GITEA_REPO}/releases")" "${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/releases")"
release_id="$(printf '%s' "${release_json}" | sed -n 's/.*"id":[[:space:]]*\([0-9][0-9]*\).*/\1/p' | head -n 1)" release_id="$(printf '%s' "${release_json}" | sed -n 's/.*"id":[[:space:]]*\([0-9][0-9]*\).*/\1/p' | head -n 1)"
if [ -z "${release_id}" ]; then if [ -z "${release_id}" ]; then
@@ -73,8 +63,16 @@ jobs:
exit 1 exit 1
fi fi
curl -fsS \ if [[ "${GITHUB_SERVER_URL}" == "https://github.com" ]]; then
-H "Authorization: token ${GITEA_TOKEN}" \ curl -fsS \
-H "Content-Type: multipart/form-data" \ -H "Authorization: token ${GITHUB_TOKEN}" \
-F "attachment=@${jar_path}" \ -H "Content-Type: application/octet-stream" \
"${GITEA_API_URL}/repos/${GITEA_REPO}/releases/${release_id}/assets?name=$(basename "${jar_path}")" --data-binary @"${jar_path}" \
"https://uploads.github.com/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?name=$(basename "${jar_path}")"
else
curl -fsS \
-H "Authorization: token ${GITHUB_TOKEN}" \
-H "Content-Type: multipart/form-data" \
-F "attachment=@${jar_path}" \
"${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?name=$(basename "${jar_path}")"
fi

29
.github/workflows/dev-verify.yml vendored Normal file
View File

@@ -0,0 +1,29 @@
name: Dev Verify
on:
push:
branches:
- dev
pull_request:
branches:
- dev
workflow_dispatch:
jobs:
verify:
runs-on: ubuntu-latest
steps:
- name: Check out
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
- name: Verify
shell: bash
run: |
set -euo pipefail
bash ./gradlew --no-daemon compileClientJava

78
.github/workflows/main-release.yml vendored Normal file
View File

@@ -0,0 +1,78 @@
name: Main Release
on:
push:
branches:
- main
tags:
- "v*"
workflow_dispatch:
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
- name: Build
shell: bash
run: |
set -euo pipefail
bash ./gradlew --no-daemon build
- name: Publish release
if: github.event_name != 'pull_request'
shell: bash
run: |
set -euo pipefail
jar_path="$(ls -1 build/libs/*.jar | head -n 1)"
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
release_tag="${GITHUB_REF_NAME}"
release_name="${GITHUB_REF_NAME}"
prerelease=false
else
release_tag="build-${GITHUB_SHA:0:7}"
release_name="build-${GITHUB_SHA:0:7}"
prerelease=true
fi
release_payload="$(printf '{"tag_name":"%s","name":"%s","body":"Automated build for %s.","draft":false,"prerelease":%s}' \
"${release_tag}" "${release_name}" "${release_name}" "${prerelease}")"
release_json="$(curl -fsS \
-H "Authorization: token ${GITHUB_TOKEN}" \
-H "Content-Type: application/json" \
-d "${release_payload}" \
"${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/releases")"
release_id="$(printf '%s' "${release_json}" | sed -n 's/.*"id":[[:space:]]*\([0-9][0-9]*\).*/\1/p' | head -n 1)"
if [ -z "${release_id}" ]; then
echo "Failed to parse release ID from response:"
printf '%s\n' "${release_json}"
exit 1
fi
if [[ "${GITHUB_SERVER_URL}" == "https://github.com" ]]; then
curl -fsS \
-H "Authorization: token ${GITHUB_TOKEN}" \
-H "Content-Type: application/octet-stream" \
--data-binary @"${jar_path}" \
"https://uploads.github.com/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?name=$(basename "${jar_path}")"
else
curl -fsS \
-H "Authorization: token ${GITHUB_TOKEN}" \
-H "Content-Type: multipart/form-data" \
-F "attachment=@${jar_path}" \
"${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?name=$(basename "${jar_path}")"
fi