Skip to content

Merge branch 'just-buildsystem:master' into github-ci #109

Merge branch 'just-buildsystem:master' into github-ci

Merge branch 'just-buildsystem:master' into github-ci #109

Workflow file for this run

name: Tests
on:
push:
branches:
- github-ci*
jobs:
debug:
name: Debug
if: "!contains(github.event.head_commit.message, '[skip-ci]')"
runs-on: ubuntu-22.04
steps:
- name: Restore local cache
uses: actions/cache/restore@v3
with:
path: ~/.cache/just
key: tests-${{ runner.os }}-debug
- name: Checkout sources
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Run and prepare docker image
run: |
docker run -it -d --name ubuntu \
-v $GITHUB_WORKSPACE:/workspace \
-v ~/.cache/just:/root/.cache/just \
-w /workspace ubuntu:20.04
docker exec ubuntu bash -c "\
set -e; \
apt update; \
apt install --yes git jq curl wget clang libstdc++-10-dev patch; \
git config --global --add safe.directory /workspace; \
git config --global --add safe.directory /root/.cache/just/git; \
export PREFIX=/usr/local; \
./.github/install-just.sh"
- name: Run all tests in native mode
run: |
docker exec ubuntu bash -c "\
set -e; \
echo '{\"DEBUG\":true,\"TEST_ENV\":{},\"DROP_LARGE_TESTS\":true}' > debug-native.conf; \
just-mr --main 'just tests' build -c debug-native.conf ALL"
- name: Run all tests in compatible mode
run: |
docker exec ubuntu bash -c "\
set -e; \
echo '{\"DEBUG\":true,\"TEST_ENV\":{\"COMPATIBLE\":\"YES\"},\"DROP_LARGE_TESTS\":true}' > debug-compat.conf; \
just-mr --main 'just tests' build -c debug-compat.conf ALL"
- name: Run garbage collector and clean cache
run: |
docker exec ubuntu bash -c "set -e; just gc"
gh extension install actions/gh-actions-cache
if [ -n "$(gh actions-cache list -R ${GITHUB_REPOSITORY} -B ${GITHUB_REF} --key 'tests-${{ runner.os }}-debug')" ]; then
gh actions-cache delete "tests-${{ runner.os }}-debug" -R ${GITHUB_REPOSITORY} -B ${GITHUB_REF} --confirm
fi
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Store local cache
uses: actions/cache/save@v3
if: ${{ !cancelled() }}
with:
path: ~/.cache/just
key: tests-${{ runner.os }}-debug
release:
name: Release
if: "!contains(github.event.head_commit.message, '[skip-ci]')"
runs-on: ubuntu-22.04
steps:
- name: Restore local cache
uses: actions/cache/restore@v3
with:
path: ~/.cache/just
key: tests-${{ runner.os }}-release
- name: Checkout sources
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Run and prepare docker image
run: |
docker run -it -d --name ubuntu \
-v $GITHUB_WORKSPACE:/workspace \
-v ~/.cache/just:/root/.cache/just \
-w /workspace ubuntu:20.04
docker exec ubuntu bash -c "\
set -e; \
apt update; \
apt install --yes git jq curl wget clang libstdc++-10-dev patch; \
git config --global --add safe.directory /workspace; \
git config --global --add safe.directory /root/.cache/just/git; \
export PREFIX=/usr/local; \
./.github/install-just.sh"
- name: Run all tests in native mode
run: |
docker exec ubuntu bash -c "\
set -e; \
echo '{\"DEBUG\":false,\"TEST_ENV\":{},\"DROP_LARGE_TESTS\":true}' > release-native.conf; \
just-mr --main 'just tests' build -c release-native.conf ALL"
- name: Run all tests in compatible mode
run: |
docker exec ubuntu bash -c "\
set -e; \
echo '{\"DEBUG\":false,\"TEST_ENV\":{\"COMPATIBLE\":\"YES\"},\"DROP_LARGE_TESTS\":true}' > release-compat.conf; \
just-mr --main 'just tests' build -c release-compat.conf ALL"
- name: Run garbage collector and clean cache
run: |
docker exec ubuntu bash -c "set -e; just gc"
gh extension install actions/gh-actions-cache
if [ -n "$(gh actions-cache list -R ${GITHUB_REPOSITORY} -B ${GITHUB_REF} --key 'tests-${{ runner.os }}-release')" ]; then
gh actions-cache delete "tests-${{ runner.os }}-release" -R ${GITHUB_REPOSITORY} -B ${GITHUB_REF} --confirm
fi
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Store local cache
uses: actions/cache/save@v3
if: ${{ !cancelled() }}
with:
path: ~/.cache/just
key: tests-${{ runner.os }}-release