Tests #255
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
pull_request: | |
branches: [ master ] | |
push: | |
# ci-sandbox is a branch dedicated to testing post-submit code. | |
branches: [ master, artifacts-pr ] | |
tags: | |
- v* | |
schedule: | |
# run on Mondays at 8AM | |
- cron: '0 8 * * 1' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
# environment variables shared between build steps | |
# do not include sensitive credentials and tokens here, instead pass them | |
# directly to tools that need them to limit the blast radius in case one of them | |
# becomes compromised and leaks credentials to external sites. | |
# required by Makefile | |
UNIX_SHELL_ON_WINDOWS: true | |
# set (to any value other than false) to trigger random unicode filenames testing (logs may be difficult to read) | |
ENABLE_UNICODE_FILENAMES: ${{ secrets.ENABLE_UNICODE_FILENAMES }} | |
# set (to any value other than false) to trigger very long filenames testing | |
ENABLE_LONG_FILENAMES: ${{ secrets.ENABLE_LONG_FILENAMES }} | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-latest, macos-latest] | |
include: | |
- os: [self-hosted, ARM64] | |
#- os: [self-hosted, ARMHF] | |
name: Tests | |
runs-on: ${{ matrix.os }} | |
continue-on-error: ${{ contains(matrix.os, 'self-hosted') }} | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 | |
with: | |
fetch-depth: 0 | |
- name: Set up Go | |
uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 | |
with: | |
go-version-file: 'go.mod' | |
check-latest: true | |
id: go | |
if: ${{ !contains(matrix.os, 'ARMHF') }} | |
- name: Install GoLang for ARMHF | |
run: "echo /usr/local/go/bin >> $GITHUB_PATH; rm -rf /usr/local/go && mkdir -p /usr/local/go && curl -s -L https://go.dev/dl/go1.19.2.linux-armv6l.tar.gz | tar -C /usr/local -xz" | |
if: ${{ contains(matrix.os, 'ARMHF') }} | |
- name: Install Windows-specific packages | |
run: "choco install --no-progress -y make zip unzip curl" | |
if: ${{ contains(matrix.os, 'windows') }} | |
- name: Install macOS-specific packages | |
run: "sudo xcode-select -r" | |
if: ${{ contains(matrix.os, 'macos') }} | |
- name: Setup | |
run: make -j4 ci-setup | |
- name: Tests | |
run: make ci-tests | |
- name: Integration Tests | |
run: make -j2 ci-integration-tests | |
- name: Upload Logs | |
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
with: | |
name: logs-${{ matrix.os }} | |
path: .logs/**/*.log | |
if-no-files-found: ignore | |
if: ${{ always() }} |