From 7224c030ca023e32b669fab95bedec285d0d1bd4 Mon Sep 17 00:00:00 2001 From: per1234 Date: Sun, 30 May 2021 05:15:14 -0700 Subject: [PATCH 1/2] Generate test build artifacts Providing pre-built binaries for every pull request or commit that changes relevant files enables any interested party to participate in the review or beta testing process without imposing the requirement to set up the build toolchain on their local machine. This will also avoid any chance of differences between the tester's environment and the release system environment introducing spurious results. --- .github/workflows/test.yml | 85 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 56b75034..004b2f65 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,6 +26,9 @@ on: - "test/**" - "Taskfile.yml" +env: + BUILDS_ARTIFACT: build-artifacts + jobs: test-go: strategy: @@ -82,3 +85,85 @@ jobs: - name: Run integration tests run: task test-integration + + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v1 + with: + fetch-depth: 0 + + - name: Install Taskfile + uses: arduino/setup-task@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + + - name: Build + run: | + PACKAGE_NAME_PREFIX="${{ github.workflow }}" + if [ "${{ github.event_name }}" = "pull_request" ]; then + PACKAGE_NAME_PREFIX="$PACKAGE_NAME_PREFIX-${{ github.event.number }}" + fi + PACKAGE_NAME_PREFIX="$PACKAGE_NAME_PREFIX-${{ github.sha }}-" + export PACKAGE_NAME_PREFIX + task dist:all + + # Transfer builds to artifacts job + - name: Upload combined builds artifact + uses: actions/upload-artifact@v2 + with: + path: dist/ + name: ${{ env.BUILDS_ARTIFACT }} + + artifacts: + name: ${{ matrix.artifact.name }} artifact + needs: build + runs-on: ubuntu-latest + + strategy: + matrix: + artifact: + - path: "*checksums.txt" + name: checksums + - path: "*Linux_32bit.tar.gz" + name: Linux_X86-32 + - path: "*Linux_64bit.tar.gz" + name: Linux_X86-64 + - path: "*Linux_ARM64.tar.gz" + name: Linux_ARM64 + - path: "*Linux_ARMv6.tar.gz" + name: Linux_ARMv6 + - path: "*Linux_ARMv7.tar.gz" + name: Linux_ARMv7 + - path: "*macOS_64bit.tar.gz" + name: macOS_64 + - path: "*Windows_32bit.zip" + name: Windows_X86-32 + - path: "*Windows_64bit.zip" + name: Windows_X86-64 + + steps: + - name: Download combined builds artifact + uses: actions/download-artifact@v2 + with: + name: ${{ env.BUILDS_ARTIFACT }} + path: ${{ env.BUILDS_ARTIFACT }} + + - name: Upload individual build artifact + uses: actions/upload-artifact@v2 + with: + path: ${{ env.BUILDS_ARTIFACT }}/${{ matrix.artifact.path }} + name: ${{ matrix.artifact.name }} + + clean: + needs: artifacts + runs-on: ubuntu-latest + + steps: + - name: Remove unneeded combined builds artifact + uses: geekyeggo/delete-artifact@v1 + with: + name: ${{ env.BUILDS_ARTIFACT }} From 1eedcc6056fbd3a8f1c596bedd83f361b7aa0a41 Mon Sep 17 00:00:00 2001 From: per1234 Date: Sun, 30 May 2021 05:21:01 -0700 Subject: [PATCH 2/2] Remove unnecessary build step from test workflow This build step became superfluous with the reconfiguration of the integration test task to do the necessary build. --- .github/workflows/test.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 004b2f65..0e1afe2d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -61,9 +61,6 @@ jobs: - name: Check for forgotten code generation run: git diff --color --exit-code - - name: Build - run: task build - - name: Run unit tests run: task go:test-unit