diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..85c2697 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,61 @@ +name: Actions 😎 +on: [push] + +jobs: + testRunnerInAllModes: + name: Test all modes ✨ + runs-on: ubuntu-latest + steps: + # Checkout repository (required to test local actions) + - name: Checkout repository + uses: actions/checkout@v1 + + # Configure test runner + - name: Run tests + id: allTests + uses: webbertakken/unity-test-runner@v1 + env: + UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} + TEST_MODE: all + UNITY_PROJECT_PATH: unity-project-with-correct-tests + # Test implicit ARTIFACTS_PATH, by not setting it + + # Upload artifacts + - name: Upload test results + uses: actions/upload-artifact@v1 + with: + name: Test results (all) + path: ${{ steps.allTests.outputs.artifactsPath }} + + testRunnerInEachModeSeparately: + name: Test each mode sequentially # don't try this at home (it's much slower) + runs-on: ubuntu-latest + steps: + # Checkout repository (required to test local actions) + - name: Checkout repository + uses: actions/checkout@v1 + + # Configure first test runner + - name: Tests in editmode 📝 + uses: webbertakken/unity-test-runner@v1 + env: + UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} + TEST_MODE: editmode + UNITY_PROJECT_PATH: unity-project-with-correct-tests + ARTIFACTS_PATH: artifacts/editmode + + # Configure second test runner + - name: Tests in playmode 📺 + uses: webbertakken/unity-test-runner@v1 + env: + UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} + TEST_MODE: playmode + UNITY_PROJECT_PATH: unity-project-with-correct-tests + ARTIFACTS_PATH: artifacts/playmode + + # Upload combined artifacts + - name: Upload combined test results + uses: actions/upload-artifact@v1 + with: + name: Test results (by reference) + path: artifacts/ diff --git a/README.md b/README.md index 92f190b..8d2d645 100644 --- a/README.md +++ b/README.md @@ -39,11 +39,11 @@ Configure the test runner as follows: # Choose: "all", "playmode", "editmode" TEST_MODE: all - # Optional: Folder of your project, leave blank for "./" + # Optional: Path to your project, leave blank for "./" UNITY_PROJECT_PATH: relative/path/to/your/project - # Optional: Artifacts folder, leave blank for "artifacts" - ARTIFACTS_FOLDER: store/artifacts/here + # Optional: Artifacts path, leave blank for "artifacts" + ARTIFACTS_PATH: store/artifacts/here ``` You use the id to **upload the artifacts** like so: diff --git a/entrypoint.sh b/entrypoint.sh index 3a922f5..74dfb8a 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -5,10 +5,10 @@ LICENSE_FILE_PATH=UnityLicenseFile.ulf UNITY_PROJECT_PATH=$GITHUB_WORKSPACE/$UNITY_PROJECT_PATH # Set the artifacts path -if [ -z "$ARTIFACTS_FOLDER" ]; then - ARTIFACTS_FOLDER=artifacts +if [ -z "$ARTIFACTS_PATH" ]; then + ARTIFACTS_PATH=artifacts fi -ARTIFACTS_PATH=$GITHUB_WORKSPACE/$ARTIFACTS_FOLDER +FULL_ARTIFACTS_PATH=$GITHUB_WORKSPACE/$ARTIFACTS_PATH # Set the modes for testing case $TEST_MODE in @@ -62,8 +62,8 @@ echo "###########################" echo "# Artifacts folder #" echo "###########################" echo "" -echo "Creating \"$ARTIFACTS_PATH\" if it does not exist." -mkdir -p $ARTIFACTS_PATH +echo "Creating \"$FULL_ARTIFACTS_PATH\" if it does not exist." +mkdir -p $FULL_ARTIFACTS_PATH echo "" echo "###########################" @@ -89,7 +89,7 @@ if [ $EDIT_MODE = true ]; then -projectPath "$UNITY_PROJECT_PATH" \ -runTests \ -testPlatform editmode \ - -testResults "$ARTIFACTS_PATH/editmode-results.xml" + -testResults "$FULL_ARTIFACTS_PATH/editmode-results.xml" # Catch exit code EDIT_MODE_EXIT_CODE=$? @@ -123,7 +123,7 @@ if [ $PLAY_MODE = true ]; then -projectPath "$UNITY_PROJECT_PATH" \ -runTests \ -testPlatform playmode \ - -testResults "$ARTIFACTS_PATH/playmode-results.xml" + -testResults "$FULL_ARTIFACTS_PATH/playmode-results.xml" # Catch exit code PLAY_MODE_EXIT_CODE=$? @@ -157,8 +157,8 @@ if [ $EDIT_MODE = true ]; then echo "# Edit Mode Results #" echo "###########################" echo "" - cat "$ARTIFACTS_PATH/editmode-results.xml" - cat "$ARTIFACTS_PATH/editmode-results.xml" | grep test-run | grep Passed + cat "$FULL_ARTIFACTS_PATH/editmode-results.xml" + cat "$FULL_ARTIFACTS_PATH/editmode-results.xml" | grep test-run | grep Passed fi if [ $PLAY_MODE = true ]; then @@ -167,8 +167,8 @@ if [ $PLAY_MODE = true ]; then echo "# Edit Mode Results #" echo "###########################" echo "" - cat "$ARTIFACTS_PATH/playmode-results.xml" - cat "$ARTIFACTS_PATH/playmode-results.xml" | grep test-run | grep Passed + cat "$FULL_ARTIFACTS_PATH/playmode-results.xml" + cat "$FULL_ARTIFACTS_PATH/playmode-results.xml" | grep test-run | grep Passed fi # @@ -176,7 +176,7 @@ fi # # Set resulting name as output variable -echo ::set-output name=artifactsPath::$ARTIFACTS_PATH +echo ::set-output name=artifactsPath::$FULL_ARTIFACTS_PATH # # Exit