Builder: notify when used clean
option without any target
#117
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: 'Build Siskin' | |
on: | |
# Triggers the workflow when these files are modified | |
push: | |
paths: | |
- test/** | |
- tree/rebol/Siskin/** | |
- tree/rebol/siskin.nest | |
- .github/workflows/siskin.yml | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
windows: | |
strategy: | |
fail-fast: true | |
runs-on: windows-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rebol | |
uses: oldes/[email protected] | |
# 32bit gcc version would fail for now (requires 32bit mingw) | |
# - name: Build 32bit Siskin using gcc | |
# run: | | |
# ./rebol3 siskin.r3 rebol/siskin siskin-windows-x86 | |
# MOVE ./tree/rebol/Siskin/build/siskin-windows-x86.exe ./siskin-windows-x86-gcc.exe | |
# | |
# - name: Build 64bit Siskin using gcc | |
# run: | | |
# ./rebol3 siskin.r3 rebol/siskin siskin-windows-x86_64 | |
# MOVE ./tree/rebol/Siskin/build/siskin-windows-x86_64.exe ./siskin-windows-x86_64-gcc.exe | |
- name: Build 32bit Siskin using msvc | |
run: | | |
./rebol3 siskin.r3 rebol/siskin --msvc siskin-windows-x86 | |
MOVE ./tree/rebol/Rebol/msvc/Release-Win32/siskin-windows-x86.exe ./ | |
- name: Build 64bit Siskin using msvc | |
run: | | |
./rebol3 siskin.r3 rebol/siskin --msvc siskin-windows-x86_64 | |
MOVE ./tree/rebol/Rebol/msvc/Release-x64/siskin-windows-x86_64.exe ./ | |
#- name: Test 32bit Siskin project (gcc) | |
# run: ./siskin-windows-x86-gcc.exe | |
#- name: Test 64bit Siskin project (gcc) | |
# run: ./siskin-windows-x86_64-gcc.exe | |
- name: Test 32bit Siskin project (msvc) | |
run: ./siskin-windows-x86.exe | |
- name: Test 64bit Siskin project (msvc) | |
run: ./siskin-windows-x86_64.exe | |
- name: List all possible test targets | |
run: ./siskin-windows-x86_64.exe test --list | |
- name: Test build 1 | |
run: ./siskin-windows-x86_64.exe test test-1 | |
- name: Test build 2 | |
run: ./siskin-windows-x86_64.exe test test-2 | |
- name: Test build 3 | |
run: ./siskin-windows-x86_64.exe test test-3 | |
- name: Test build 4 | |
run: ./siskin-windows-x86_64.exe test test-4 | |
- name: Test build 5 | |
run: ./siskin-windows-x86_64.exe test test-5 | |
- name: Test build 6 | |
run: ./siskin-windows-x86_64.exe test test-6 | |
- name: Test build 7 | |
run: ./siskin-windows-x86_64.exe test test-7 | |
- name: Test build 8 | |
run: ./siskin-windows-x86_64.exe test "test-8 spaced" | |
- name: Test build multiple at once | |
run: ./siskin-windows-x86_64.exe test 1 2 "test-8 spaced" | |
- name: Test build with output override | |
run: | | |
./siskin-windows-x86_64.exe test --output new.exe test-1 | |
./new.exe | |
- name: Test Rebol Preprocessor | |
run: | | |
./siskin-windows-x86_64.exe test test.r3 | |
./rebol3 ./test/build/test.r3 | |
- name: Test build 8 (MSVC) | |
run: ./siskin-windows-x86_64.exe test --msvc 8 | |
- name: Test build 8 with output override (MSVC) | |
run: | | |
./siskin-windows-x86_64.exe test --msvc -o new.exe 8 | |
./new.exe | |
- name: Test only single command | |
run: ./siskin-windows-x86_64.exe test list-dir | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: Siskin-windows | |
path: | | |
./siskin-windows-x86.exe | |
./siskin-windows-x86_64.exe | |
# ./siskin-windows-x86-gcc.exe | |
# ./siskin-windows-x86_64-gcc.exe | |
linux: | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ubuntu-20.04] | |
#os: [ubuntu-latest] | |
#os: [ubuntu-20.04, ubuntu-18.04] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rebol | |
uses: oldes/[email protected] | |
- name: Install GCC multilib | |
run: sudo apt-get install gcc-multilib | |
- name: Build 32bit Siskin using gcc | |
run: ./rebol3 siskin.r3 rebol/siskin siskin-linux-x86 | |
- name: Build 64bit Siskin using gcc | |
run: ./rebol3 siskin.r3 rebol/siskin siskin-linux-x86_64 | |
- name: Move results into the root for uploading | |
run: | | |
mv ./tree/rebol/Siskin/build/siskin-linux-x86_64 ./ | |
mv ./tree/rebol/Siskin/build/siskin-linux-x86 ./ | |
- name: List all possible test targets | |
run: ./siskin-linux-x86_64 test --list | |
- name: Test build 1 | |
run: ./siskin-linux-x86_64 test test-1 | |
- name: Test build 2 | |
run: ./siskin-linux-x86_64 test test-2 | |
- name: Test build 3 | |
run: ./siskin-linux-x86_64 test test-3 | |
- name: Test build 4 | |
run: ./siskin-linux-x86_64 test test-4 | |
- name: Test build 5 | |
run: ./siskin-linux-x86_64 test test-5 | |
- name: Test build 6 | |
run: ./siskin-linux-x86_64 test test-6 | |
- name: Test build 7 | |
run: ./siskin-linux-x86_64 test test-7 | |
- name: Test build 8 | |
run: ./siskin-linux-x86_64 test "test-8 spaced" | |
- name: Test build multiple at once | |
run: ./siskin-linux-x86_64 test 1 2 "test-8 spaced" | |
- name: Test build with output override | |
run: | | |
./siskin-linux-x86_64 test --output new test-1 | |
./new | |
- name: Test Rebol Preprocessor | |
run: | | |
./siskin-linux-x86_64 test test.r3 | |
./rebol3 ./test/build/test.r3 | |
- name: Test only single command | |
run: ./siskin-linux-x86_64 test list-dir | |
- name: Compress results before uploading | |
run: | | |
gzip -9 ./siskin-linux-x86_64 | |
gzip -9 ./siskin-linux-x86 | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: Siskin-linux | |
path: ./siskin-linux* | |
macos: | |
runs-on: macos-12 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rebol | |
uses: oldes/[email protected] | |
- name: Install the Apple certificate | |
# https://docs.github.com/en/actions/guides/installing-an-apple-certificate-on-macos-runners-for-xcode-development | |
env: | |
BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_CERTIFICATE }} | |
P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} | |
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} | |
run: | | |
# create variables | |
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 | |
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db | |
# import certificate from secrets | |
echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH | |
# create temporary keychain | |
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH | |
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH | |
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH | |
# import certificate to keychain | |
security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH | |
security list-keychain -d user -s $KEYCHAIN_PATH | |
# list available codesigning identities | |
security find-identity -v -p codesigning | |
#It looks it's not possible to build 32bit macOS version anymore using GitHub actions! | |
# | |
#- name: Build 32bit Siskin | |
# run: | | |
# ./rebol3 siskin.r3 rebol/siskin %siskin-windows-x86-osx | |
# mv ./tree/rebol/Siskin/build/siskin-windows-x86-osx ./ | |
- name: Build x86_64 Siskin | |
run: ./rebol3 siskin.r3 rebol/siskin siskin-macos-x86_64 | |
- name: Build ARM64 Siskin | |
run: ./rebol3 siskin.r3 rebol/siskin siskin-macos-aarch64 | |
- name: Move results into the root for uploading | |
run: | | |
mv ./tree/rebol/Siskin/build/siskin-macos-x86_64 ./ | |
mv ./tree/rebol/Siskin/build/siskin-macos-aarch64 ./ | |
- name: Codesign executables | |
env: | |
MACOS_IDENTITY_ID: ${{ secrets.MACOS_IDENTITY_ID }} | |
run: | | |
/usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./siskin-macos-x86_64 -v | |
/usr/bin/codesign --force -s $MACOS_IDENTITY_ID ./siskin-macos-aarch64 -v | |
- name: List all possible test targets | |
run: ./siskin-macos-x86_64 test --list | |
- name: Test build 1 | |
run: ./siskin-macos-x86_64 test test-1 | |
- name: Test build 2 | |
run: ./siskin-macos-x86_64 test test-2 | |
- name: Test build 3 | |
run: ./siskin-macos-x86_64 test test-3 | |
- name: Test build 4 | |
run: ./siskin-macos-x86_64 test test-4 | |
- name: Test build 5 | |
run: ./siskin-macos-x86_64 test test-5 | |
- name: Test build 6 | |
run: ./siskin-macos-x86_64 test test-6 | |
- name: Test build 7 | |
run: ./siskin-macos-x86_64 test test-7 | |
- name: Test build 8 | |
run: ./siskin-macos-x86_64 test "test-8 spaced" | |
- name: Test build multiple at once | |
run: ./siskin-macos-x86_64 test 1 2 "test-8 spaced" | |
- name: Test build with output override | |
run: | | |
./siskin-macos-x86_64 test --output new test-1 | |
./new | |
- name: Test Rebol Preprocessor | |
run: | | |
./siskin-macos-x86_64 test test.r3 | |
./rebol3 ./test/build/test.r3 | |
- name: Test only single command | |
run: ./siskin-macos-x86_64 test list-dir | |
- name: Compress results before uploading | |
run: | | |
gzip -9 ./siskin-macos-x86_64 | |
gzip -9 ./siskin-macos-aarch64 | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: Siskin-macos | |
path: ./siskin-macos-* | |
script: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Rebol | |
uses: oldes/[email protected] | |
- name: Preprocess Siskin script | |
run: ./rebol3 siskin.r3 rebol/siskin siskin.r3 | |
- name: Move results into the root for uploading | |
run: | | |
mv ./tree/rebol/Siskin/build/siskin.r3 ./build.r3 | |
- name: List all possible test targets | |
run: ./rebol3 build.r3 test --list | |
- name: Test build 1 | |
run: ./rebol3 build.r3 test test-1 | |
- name: Test build 2 | |
run: ./rebol3 build.r3 test test-2 | |
- name: Test build 3 | |
run: ./rebol3 build.r3 test test-3 | |
- name: Test build 4 | |
run: ./rebol3 build.r3 test test-4 | |
- name: Test build 5 | |
run: ./rebol3 build.r3 test test-5 | |
- name: Test build 6 | |
run: ./rebol3 build.r3 test test-6 | |
- name: Test build 7 | |
run: ./rebol3 build.r3 test test-7 | |
- name: Test build 8 | |
run: ./rebol3 build.r3 test "test-8 spaced" | |
- name: Test build multiple at once | |
run: ./rebol3 build.r3 test 1 2 "test-8 spaced" | |
- name: Test Rebol Preprocessor | |
run: | | |
./rebol3 build.r3 test test.r3 | |
./rebol3 ./test/build/test.r3 | |
- name: Test only single command | |
run: ./rebol3 build.r3 test list-dir | |
- name: Compress results before uploading | |
run: gzip -9 ./build.r3 | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: Siskin-script | |
path: ./build.r3.gz | |
Haiku-x86: | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | |
- name: Download Haiku Rebol-dev container | |
run: docker pull docker.io/oldes/rebol-dev:haiku-x86 | |
- name: Build all Siskin for Haiku OS x86 | |
run: docker run --rm -v $PWD:/siskin oldes/rebol-dev:haiku-x86 bash -c 'cd /siskin; rebol siskin.r3 rebol/siskin siskin-haiku-x86' | |
- name: Compress result before uploading | |
run: | | |
sudo mv ./tree/rebol/Siskin/build/siskin-haiku-x86 ./ | |
sudo gzip -9 ./siskin-haiku-x86 | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: Siskin-Haiku | |
path: ./siskin-haiku-x86.gz | |
Haiku-x86_64: | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | |
- name: Download Haiku Rebol-dev container | |
run: docker pull docker.io/oldes/rebol-dev:haiku-x64 | |
- name: Build all Siskin for Haiku OS x86_64 | |
run: docker run --rm -v $PWD:/siskin oldes/rebol-dev:haiku-x64 bash -c 'cd /siskin; rebol siskin.r3 rebol/siskin siskin-haiku-x86_64' | |
- name: Compress result before uploading | |
run: | | |
sudo mv ./tree/rebol/Siskin/build/siskin-haiku-x86_64 ./ | |
sudo gzip -9 ./siskin-haiku-x86_64 | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: Siskin-Haiku | |
path: ./siskin-haiku-x86_64.gz |