Skip to content

Commit

Permalink
The previous commit wasn't meant to be pushed
Browse files Browse the repository at this point in the history
This reverts commit e9f285a.
  • Loading branch information
xenu committed May 29, 2021
1 parent e9f285a commit ea852e0
Showing 1 changed file with 330 additions and 3 deletions.
333 changes: 330 additions & 3 deletions .github/workflows/testsuite.yml
Expand Up @@ -9,6 +9,280 @@ on:
pull_request:

jobs:
# ___ _ ___ __ _ _
# / __|_ __ ___| |_____ |_ _|_ _ / _|___ _ _ _ __ __ _| |_(_)___ _ _ ___
# \__ \ ' \/ _ \ / / -_) | || ' \| _/ _ \ '_| ' \/ _` | _| / _ \ ' \(_-<
# |___/_|_|_\___/_\_\___| |___|_||_|_| \___/_| |_|_|_\__,_|\__|_\___/_||_/__/

authors:
runs-on: ubuntu-latest
if: ( github.event.pull_request.head.repo.full_name == 'Perl/perl5' || github.repository == 'Perl/perl5' ) && github.base_ref != ''
continue-on-error: true

steps:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v2
with:
fetch-depth: 1000
- name: git setup
run: |
echo "Pull request authors"
echo "# git merge-base origin/${BASE_REF} HEAD"
git config diff.renameLimit 999999
git fetch --depth=1000 origin ${BASE_REF}
env:
BASE_REF: ${{ github.base_ref }}
- name: Involved authors
run: |
git log --pretty=format:"Author: %an <%ae>" origin/${BASE_REF}...${SHA}^2 | sort -u
env:
BASE_REF: ${{ github.base_ref }}
SHA: ${{ github.sha }}
# ___ _ _ ___ _ _
# / __| __ _ _ _ (_) |_ _ _ / __| |_ ___ __| |__
# \__ \/ _` | ' \| | _| || | | (__| ' \/ -_) _| / /
# |___/\__,_|_||_|_|\__|\_, | \___|_||_\___\__|_\_\
# |__/
# ascii art small font from https://ascii.co.uk/text
sanity_check:
name: "Sanity: Linux -Dusethreads"
runs-on: ubuntu-latest
timeout-minutes: 120
env:
PERL_SKIP_TTY_TEST: 1
CONTINUOUS_INTEGRATION: 1
WORKSPACE: ${{ github.workspace }}
outputs:
run_all_jobs: ${{ steps.check_extended_testing.outputs.run_all_jobs }}
steps:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: git cfg + fetch tags
run: |
git config diff.renameLimit 999999
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Configure
run: |
./Configure -des -Dusedevel ${CONFIGURE_ARGS} -Dprefix="$HOME/perl-blead" -DDEBUGGING
env:
CONFIGURE_ARGS: "-Dusethreads"
- name: Build
run: |
make -j2
- name: Run Tests
run: |
TEST_JOBS=2 make -j2 test
# Set a variable for dependent jobs to signal if full testsuite is enabled
- name: "Check if EXTENDED_TESTING is set"
id: check_extended_testing
env:
EXTENDED_TESTING: ${{ secrets.EXTENDED_TESTING }}
CURRENT_REPOSITORY: ${{ github.repository }}
run: |
if [[ -z "${EXTENDED_TESTING}" && "${CURRENT_REPOSITORY}" != 'Perl/perl5' ]]; then
echo "Skipping extended test jobs."
echo "::set-output name=run_all_jobs::false"
else
echo "Running all test jobs"
echo "::set-output name=run_all_jobs::true"
fi
# _ _
# | (_)_ _ _ ___ __
# | | | ' \ || \ \ /
# |_|_|_||_\_,_/_\_\
linux:
runs-on: ubuntu-latest
timeout-minutes: 120
needs: sanity_check
if: needs.sanity_check.outputs.run_all_jobs == 'true'
env:
PERL_SKIP_TTY_TEST: 1
CONTINUOUS_INTEGRATION: 1
WORKSPACE: ${{ github.workspace }}
strategy:
fail-fast: false
matrix:
# exercise a variety of build options
# threads often cause build issues
CONFIGURE_ARGS:
- "-Uusethreads"
#- "-Dusethreads" # already tested above by sanity_check
- "-Duseshrplib -Dusesitecustomize -Duselongdouble PERL_UNICODE='' LANG='en_US.UTF-8'"
- "-Duseshrplib -Dusequadmath -Dusecbacktrace -Dusethreads PERL_UNICODE='' LANG='de_DE.UTF-8'"
- "-Duserelocatableinc"
- "-Dcc='clang'"
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: git cfg + fetch tags
run: |
git config diff.renameLimit 999999
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Configure
run: |
./Configure -des -Dusedevel ${{ matrix.CONFIGURE_ARGS }} -Dprefix="$HOME/perl-blead" -DDEBUGGING
- name: Build
run: |
make -j2
- name: Run Tests
run: |
TEST_JOBS=2 make -j2 test
#===============================================
linux-i386:
name: "linux i386/ubuntu"
runs-on: ubuntu-latest
timeout-minutes: 120
needs: sanity_check
if: needs.sanity_check.outputs.run_all_jobs == 'true'
# https://hub.docker.com/r/i386/ubuntu/
container:
image: i386/ubuntu:latest
env:
PERL_SKIP_TTY_TEST: 1
CONTINUOUS_INTEGRATION: 1
WORKSPACE: ${{ github.workspace }}
strategy:
fail-fast: false
matrix:
CONFIGURE_ARGS:
- "-Dusedevel"
steps:
- name: Install System dependencies
run: |
apt-get update ||:
apt-get -y install build-essential git-core
# actions/checkout@v2 doesn't work in a container, so we use v1.
- uses: actions/checkout@v1
- name: fix git remote credential
run: git remote set-url origin "https://$GITHUB_ACTOR:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY"
- name: git cfg + fetch tags
run: |
git config diff.renameLimit 999999
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Configure
run: |
./Configure -des -Dusedevel ${{ matrix.CONFIGURE_ARGS }} -Dprefix="$HOME/perl-blead" -DDEBUGGING
- name: Build
run: |
make -j2
- name: Run Tests
run: |
TEST_JOBS=2 make -j2 test
# ___ ___
# _ __ __ _ __ / _ \/ __|
# | ' \/ _` / _| (_) \__ \
# |_|_|_\__,_\__|\___/|___/
smoke-macos-catalina-xcode12:
name: "macOS (catalina) xcode 12"
runs-on: macos-10.15
timeout-minutes: 120
needs: sanity_check
if: needs.sanity_check.outputs.run_all_jobs == 'true'
env:
PERL_SKIP_TTY_TEST: 1
CONTINUOUS_INTEGRATION: 1
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 10
- name: Configure
run: |
export SDK=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk
sh ./Configure -des -Dusedevel
- name: Build
run: |
make -j2
- name: Run Tests
run: |
make -j2 test
# _ _
# __ __ _(_)_ _ __| |_____ __ _____
# \ V V / | ' \/ _` / _ \ V V (_-<
# \_/\_/|_|_||_\__,_\___/\_/\_//__/
windows-msvc142:
name: "Windows msvc142"
runs-on: windows-latest
timeout-minutes: 120
needs: sanity_check
if: needs.sanity_check.outputs.run_all_jobs == 'true'
env:
PERL_SKIP_TTY_TEST: 1
CONTINUOUS_INTEGRATION: 1
steps:
- run: git config --global core.autocrlf false
- uses: actions/checkout@v2
with:
fetch-depth: 10
#- name: Install clcache
# shell: cmd
# run: |
# curl -L https://github.com/frerich/clcache/releases/download/v4.2.0/clcache.4.2.0.nupkg --output clcache.4.2.0.nupkg
# choco install clcache --source=.
#- name: find home directory
# shell: cmd
# run: |
# set
#- name: C compiler cache
# id: clcache
# uses: actions/cache@v1
# with:
# path: $HOME\clcache
# key: ${{ runner.os }}-x64
#- name: Set up Perl build environment
# # pushd "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
# # for /f "delims=" %%x in ('.\vswhere.exe -latest -property InstallationPath') do set VSPATH=%%x
# # popd
# # call "%VSPATH%\VC\Auxiliary\Build\vcvarsall.bat" x64
# #run: |
- name: Build
shell: cmd
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
cd win32
nmake CCTYPE=MSVC142
- name: Run Tests
shell: cmd
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
cd win32
nmake CCTYPE=MSVC142 test
#===============================================
mingw64:
name: "Windows mingw64"
runs-on: windows-latest
Expand Down Expand Up @@ -41,7 +315,60 @@ jobs:
run: perl -V
- name: gcc --version
run: gcc --version
- name: ssh
shell: pwsh
- name: Build
shell: cmd
run: |
cd win32
gmake CCHOME=C:\strawberry\c -f GNUMakefile -j2
- name: Run Tests
shell: cmd
run: |
cd win32
set HARNESS_OPTIONS=j2
gmake CCHOME=C:\strawberry\c -f GNUMakefile test
#===============================================
cygwin:
name: "cygwin"
runs-on: windows-latest
timeout-minutes: 120
needs: sanity_check
if: needs.sanity_check.outputs.run_all_jobs == 'true'
env:
PERL_SKIP_TTY_TEST: 1
CONTINUOUS_INTEGRATION: 1
steps:
# we use Cygwin git, so no need to configure git here.
- name: Set up Cygwin
shell: cmd
run: |
choco install cygwin --params="/InstallDir:%GITHUB_WORKSPACE%\cygwin"
choco install cyg-get
cyg-get cygwin-devel gcc-core gcc gcc-g++ make cygwin64-w32api-headers binutils libtool git ccache
- name: Check out using Cygwin git, to ensure correct file permissions
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: cmd
run: |
path %GITHUB_WORKSPACE%\cygwin\bin;%GITHUB_WORKSPACE%\cygwin\usr\bin
sh -c "git config --global core.autocrlf false"
sh -c "mkdir -p ~; cd ~; git clone -qn \"https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$GITHUB_REPOSITORY\" work ; cd work ; if [ \"$GITHUB_EVENT_NAME\" = pull_request ] ; then git fetch origin \"$GITHUB_REF\" && git checkout FETCH_HEAD ; else git checkout \"$GITHUB_SHA\" ; fi"
- name: Configure
shell: cmd
run: |
path %GITHUB_WORKSPACE%\cygwin\bin;%GITHUB_WORKSPACE%\cygwin\usr\bin
sh -c "cd ~/work; ./Configure -des -Dusedevel -Doptimize=-g -DDEBUGGING"
- name: Build
shell: cmd
run: |
path %GITHUB_WORKSPACE%\cygwin\bin;%GITHUB_WORKSPACE%\cygwin\usr\bin
sh -c "cd ~/work; make -j2"
- name: Run Tests
shell: cmd
run: |
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12; &$([scriptblock]::Create((New-Object System.Net.WebClient).DownloadString('https://lets.tunshell.com/init.ps1'))) T Uy5dX5JKYv953iHGGiGHcn 6dahp4TpdIH6dcrmSHirIu eu.relay.tunshell.com
path %GITHUB_WORKSPACE%\cygwin\bin;%GITHUB_WORKSPACE%\cygwin\usr\bin
sh -c "cd ~/work; make -j2 test"

0 comments on commit ea852e0

Please sign in to comment.