chore: fix workflow for pwn request

This commit is contained in:
mob-sakai
2026-06-12 16:34:29 +09:00
parent 6394eee4de
commit 1d04244b93
2 changed files with 122 additions and 71 deletions

View File

@@ -1,24 +1,44 @@
name: release name: 🔖 Release
run-name: 🔖 Release (${{ github.ref_name }})
on: on:
workflow_dispatch:
push: push:
branches: branches:
- preview - preview
- main - main
- "*.x" - v*.x
tags-ignore: tags-ignore:
- "**" - "**"
jobs: jobs:
release: release:
name: 🔖 Release (${{ github.ref_name }})
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
outputs:
channel: ${{ steps.release.outputs.new_release_channel }}
released: ${{ steps.release.outputs.new_release_published }}
tag: ${{ steps.release.outputs.new_release_git_tag }}
steps: steps:
- uses: actions/checkout@v3 - name: 🚚 Checkout (${{ github.ref_name }})
uses: actions/checkout@v6
- uses: cycjimmy/semantic-release-action@v3 - name: 🔖 Run semantic release
uses: cycjimmy/semantic-release-action@v6
id: release
with: with:
working_directory: Packages/src
extra_plugins: | extra_plugins: |
@semantic-release/changelog @semantic-release/changelog
@semantic-release/git @semantic-release/git
env: env:
GITHUB_TOKEN: ${{ github.token }} GITHUB_TOKEN: ${{ github.token }}
- run: |
echo "🔖 New release published: '${{ steps.release.outputs.new_release_published }}'" | tee -a $GITHUB_STEP_SUMMARY
echo "🔖 New release channel: '${{ steps.release.outputs.new_release_channel }}'" | tee -a $GITHUB_STEP_SUMMARY
echo "🔖 New release git tag: '${{ steps.release.outputs.new_release_git_tag }}'" | tee -a $GITHUB_STEP_SUMMARY

View File

@@ -1,94 +1,125 @@
# Secrets # Required secrets
# UNITY_LICENSE: # UNITY_LICENSE: The contents of Unity license file
name: test # UNITY_EMAIL: Unity user email to login
# UNITY_PASSWORD: Unity user password to login
name: 🧪 Test
run-name: 🧪 Test (${{ github.event.pull_request.title || github.ref_name }})
env:
# MINIMUM_VERSION: The minimum version of Unity.
MINIMUM_VERSION: 2020.3
# EXCLUDE_FILTER: The excluded versions of Unity.
EXCLUDE_FILTER: "(2017|2018|2023.3)"
PROJECT_PATH: .
on: on:
workflow_dispatch:
inputs:
usePeriodVersions:
description: "Use the period versions (.0f1, .10f1, 20f1, ...)."
required: false
default: "true"
push: push:
branches: branches:
- develop - develop
- "develop-*"
tags: tags:
- "!*" - "!*"
paths-ignore:
- "**.md"
pull_request: pull_request:
types: types:
- opened - opened
- reopened
- synchronize - synchronize
paths-ignore:
- "**.md"
jobs: jobs:
unity-test: setup:
name: ⚙️ Setup
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: {} # No permissions needed for setup job
outputs:
unityVersions: ${{ steps.setup.outputs.unityVersions }}
steps:
- name: 🔑 Secrets check
run: |
if [ -z "$UNITY_EMAIL" ] || [ -z "$UNITY_PASSWORD" ] || [ -z "UNITY_LICENSE" ]; then
echo "Error: UNITY_EMAIL, UNITY_PASSWORD, and UNITY_LICENSE secrets must be set." | tee -a $GITHUB_STEP_SUMMARY >&2
echo "Error: See https://game.ci/docs/github/test-runner#basic-setup" | tee -a $GITHUB_STEP_SUMMARY >&2
echo "Error: Set the secrets at ${{ github.server_url }}/${{ github.repository }}/settings/secrets/actions" | tee -a $GITHUB_STEP_SUMMARY >&2
exit 1
fi
env:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
- name: ⚙️ Find target Unity versions
id: setup
run: |
echo "==== Target Unity Versions ===="
LATEST_VERSIONS=`npx -y unity-changeset@latest list --json --versions --all --latest-patch --ignore-alpha --min ${MINIMUM_VERSION}`
if [ "${{ inputs.usePeriodVersions }}" = "true" ]; then
ADDITIONAL_VERSIONS=`npx -y unity-changeset@latest list --json --versions --ignore-alpha --min ${MINIMUM_VERSION} --grep '0f'`
else
ADDITIONAL_VERSIONS=[]
fi
VERSIONS=`echo "[${LATEST_VERSIONS}, ${ADDITIONAL_VERSIONS}]" \
| jq -c '[ flatten | sort | unique | .[] | select( test("${{ env.EXCLUDE_FILTER }}") | not ) ]'`
echo "unityVersions=${VERSIONS}" | tee $GITHUB_OUTPUT
test:
name: 🧪 Run tests
runs-on: ubuntu-latest
permissions:
checks: write
contents: read
needs: setup
strategy: strategy:
fail-fast: false fail-fast: false
max-parallel: 8
matrix: matrix:
unityVersion: [ unityVersion: ${{ fromJson(needs.setup.outputs.unityVersions) }}
"2018.3.14f1",
"2018.4.30f1",
"2019.1.14f1",
"2019.2.21f1",
"2019.3.15f1",
"2019.4.16f1",
"2020.1.17f1",
"2020.2.1f1",
]
steps: steps:
# Checkout sandbox project - name: 🚚 Checkout ($${{ github.ref }})
- uses: actions/checkout@v2 uses: actions/checkout@v6
with:
ref: sandbox
submodules: true
fetch-depth: 0
# Update package submodule - name: 📥 Cache library
- name: "Update package submodule" uses: actions/cache@v5
working-directory: Packages/dev
run: git checkout ${{ github.sha }}
- uses: actions/cache@v2
with: with:
path: Library path: ${{ env.PROJECT_PATH }}/Library
key: Library-${{ matrix.unityVersion }}-${{ github.sha }} key: ${{ env.PROJECT_PATH }}-Library-${{ matrix.unityVersion }}-${{ github.event.pull_request.head.sha || github.sha }}
restore-keys: | restore-keys: |
Library-${{ matrix.unityVersion }}- ${{ env.PROJECT_PATH }}-Library-${{ matrix.unityVersion }}-
Library- ${{ env.PROJECT_PATH }}-Library-
# Install codecoverage package - name: 🛠️ Build Unity Project (Test)
- name: "Install codecoverage package" uses: game-ci/unity-builder@v5
if: startsWith(matrix.unityVersion, '2019.4.') timeout-minutes: 45
run: |
npx openupm-cli add -f com.unity.testtools.codecoverage@0.4.0-preview
# Run tests
- name: "Run tests"
uses: game-ci/unity-test-runner@main
with: with:
unityVersion: ${{ matrix.unityVersion }} customImage: ghcr.io/mob-sakai/unity3d:${{ matrix.unityVersion }}
customParameters: -nographics -enableCodeCoverage -coverageOptions assemblyFilters:+Coffee.UIParticle.*Tests targetPlatform: StandaloneLinux64
allowDirtyBuild: true
customParameters: -nographics
projectPath: ${{ env.PROJECT_PATH }}
env: env:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
- uses: actions/upload-artifact@v2 - name: 🧪 Run tests
if: always() uses: game-ci/unity-test-runner@v4
timeout-minutes: 45
with: with:
name: TestResults-${{ matrix.unityVersion }} customImage: ghcr.io/mob-sakai/unity3d:${{ matrix.unityVersion }}
path: | # unityVersion: ${{ matrix.unityVersion }}
artifacts/*.xml customParameters: -nographics
CodeCoverage/**/TestCoverageResults_*.xml checkName: ${{ matrix.unityVersion }} Test Results
githubToken: ${{ github.token }}
publish: projectPath: ${{ env.PROJECT_PATH }}
needs: unity-test env:
runs-on: ubuntu-latest UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
if: always() UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
steps: UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
- uses: actions/download-artifact@v2
with:
path: artifacts
- uses: testspace-com/setup-testspace@v1
with:
domain: ${{github.repository_owner}}
- name: Push test results
if: always()
run: |
testspace `find . -name '*.xml' | tr '\n' ' '`