GitHub Action for gotestfmt
Find a file
Y. Meyer-Norwood ed11bda1c4
Fix installation on Windows runners (#10)
* Correctly identify windows os

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Prevent darwin from being reported as Linux

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Remove unix specific logging and determine .zip extension on windows

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Add selftest on windows

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Run self test on all push events (for testing)

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Inline postfix declaration

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Separate extension detection from postfix

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Correctly avoid assignment to const variable

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Make postfix constant

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Prevent curl from assuming tar.gz format

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Refactor download stage

* Separate logical steps
* Use string interpolation for curl command

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Use environment defined temp path

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Fix missing `$`

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Correct all references to hardcoded filename

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Attempt debugging missing download

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Restore original console loggers

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* USe GOOs

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Extract binary directly to GOPATH rather than hardcoded lib path

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Properly log GOOS detection

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Remove GOOS detection as GOOS not in environment

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Replace GOPATH with system dependent lib path

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Fix windows path separator problems

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Simplify archive path

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Fix escape character

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Use more meaningful name for binpath

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Fix whitespace

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Add debugger lines

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Add debugger lines for executed commands

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Use console debug instead of log

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Use program files as binpath

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Add install directory to path

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Remove debuggers

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Fix os check

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Remove redundant pathsep variable

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Add documentation comments

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Fix missing path separators

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Explicitly echo bin path into GITHUB_PATH

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Quote bin path when `cd`ing into it to avoid shell globbing

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Ensure bin path exists

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Attempt to prevent existing directories causing problems

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Use core.addPath to add binpath to job's PATH

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Attempt to use pre-existing lib path instead of creating new one

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Add debugger for PATH variable

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* List System32 files to look for gotestfmt binary

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Remove debugger

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Manually setup binpath and add it to system path

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* List PATH targets for debugging

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Add debuggers for userprofile

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* List install target's contents

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* List files recursively and verbosely

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Search `/bin` specifically

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Only manually add the binpath on windows

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* List all PATHs

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Split on correct separator

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Don't force the directory to exist/into PATH

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Attempt to create custom binpath in windows

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Fix mkdir invocation

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Create all path components

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* List all files in target directory

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Try using pwsh for Windows runner

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Try using exe for pwsh

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Remove testing step

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* List files extracted to bin path

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Expand debugger

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* List files in temporary directory

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* List files in current directory

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Rather than changing directories, specify target to tar command

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Quote parameters to tar command

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Specify target directory before target files

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Move extracted binary manually

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Add callback to file move

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Use system defined target file

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Correct interpolation

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Copy binfile instead of renaming to prevent cross-device linking

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* List installed files

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Use binfile in final success log message

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Remove explicit path separator

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Specify fs.constants.COPYFILE_EXCL copy mode

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Extract archive directly into workspace

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Remove redundant `binfile` variable

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Remove debugger

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* List all files in workspace

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Remove debugging steps

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>

* Remove inline comments

This is per @engelmi's comment: https://github.com/GoTestTools/gotestfmt-action/pull/10/files#r1017614705

Signed-off-by: Y. Meyer-Norwood <106889957+norwd@users.noreply.github.com>

Signed-off-by: Yuri Norwood <106889957+norwd@users.noreply.github.com>
Signed-off-by: Y. Meyer-Norwood <106889957+norwd@users.noreply.github.com>
2022-11-10 17:43:54 +01:00
.github Fix installation on Windows runners (#10) 2022-11-10 17:43:54 +01:00
node_modules Referencing the new organization 2022-10-08 16:28:19 +02:00
testdata Referencing the new organization 2022-10-08 16:28:19 +02:00
.gitignore Testing actions 2021-07-28 08:24:31 +02:00
action.yml Updating to node16 (#6) 2022-10-20 16:23:59 +02:00
index.js Fix installation on Windows runners (#10) 2022-11-10 17:43:54 +01:00
LICENSE.md Create LICENSE.md 2021-07-28 07:36:49 +00:00
package-lock.json Referencing the new organization 2022-10-08 16:28:19 +02:00
package.json Referencing the new organization 2022-10-08 16:28:19 +02:00
README.md Adding action required section 2022-10-09 09:27:47 +02:00

gotestfmt: go test output for humans

⚠️ Action required: gotestfmt has moved to the GoTestTools organization and you need to update your references. Please see the announcement. The old repository will be deleted on January 1, 2023.

This action uses gotestfmt to create a beautifully formatted test output in GitHub Actions.

An animation showcasing that gotestfmt transforms a text log into an interactive log with folding sections.

Usage

You can use gotestfmt with the following configuration:

jobs:
  build:
    name: Test
    runs-on: ubuntu-latest
    steps:
      # Checkout your project with git
      - name: Checkout
        uses: actions/checkout@v2

      # Install Go on the VM running the action.
      - name: Set up Go
        uses: actions/setup-go@v2
        with:
          go-version: 1.16

      # Install gotestfmt on the VM running the action.
      - name: Set up gotestfmt
        uses: GoTestTools/gotestfmt-action@v2
        with:
          # Optional: pass GITHUB_TOKEN to avoid rate limiting.
          token: ${{ secrets.GITHUB_TOKEN }}
          # Optional: pass the gotestfmt version you want to run. 
          version: v2.0.0
          # Optional: pass an organization name and repo to use a fork
          org: GoTestTools
          repo: gotestfmt

      # Run tests with nice formatting. Save the original log in /tmp/gotest.log
      - name: Run tests
        run: |
          set -euo pipefail
          go test -json -v ./... 2>&1 | tee /tmp/gotest.log | gotestfmt          

      # Upload the original go test log as an artifact for later review.
      - name: Upload test log
        uses: actions/upload-artifact@v2
        if: always()
        with:
          name: test-log
          path: /tmp/gotest.log
          if-no-files-found: error

For more information about gotestfmt please see the gotestfmt repository.