This repository has been archived by the owner on Apr 25, 2024. It is now read-only.
Prover
no longer holds a Proof
#5791
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: 'Run Tests' | |
on: | |
pull_request: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
version-bump: | |
name: 'Version Bump' | |
runs-on: ubuntu-latest | |
steps: | |
- name: 'Check out code' | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.JENKINS_GITHUB_PAT }} | |
# fetch-depth 0 means deep clone the repo | |
fetch-depth: 0 | |
- name: 'Update version' | |
run: | | |
set -x | |
git config user.name devops | |
git config user.email [email protected] | |
./package/version.sh bump $(git show origin/${GITHUB_BASE_REF}:package/version) | |
./package/version.sh sub | |
if git add --update && git commit --message "Set Version: $(cat package/version)"; then | |
git push origin HEAD:${GITHUB_HEAD_REF} | |
fi | |
code-quality-checks: | |
needs: version-bump | |
name: 'Code Quality Checks' | |
runs-on: ubuntu-latest | |
steps: | |
- name: 'Check out code' | |
uses: actions/checkout@v4 | |
- name: 'Set up environment' | |
uses: ./.github/actions/setup-env | |
- name: 'Run code quality checks' | |
run: make check | |
- name: 'Run pyupgrade' | |
run: make pyupgrade | |
build-docs: | |
needs: code-quality-checks | |
name: 'Build Documentation' | |
runs-on: ubuntu-latest | |
steps: | |
- name: 'Check out code' | |
uses: actions/checkout@v4 | |
- name: 'Set up environment' | |
uses: ./.github/actions/setup-env | |
- name: 'Build documentation' | |
run: make docs | |
unit-tests: | |
needs: code-quality-checks | |
name: 'Unit Tests' | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.10', '3.11', '3.12'] | |
steps: | |
- name: 'Check out code' | |
uses: actions/checkout@v4 | |
- name: 'Set up environment' | |
uses: ./.github/actions/setup-env | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: 'Run unit tests' | |
run: make cov-unit | |
profile: | |
needs: code-quality-checks | |
name: 'Profiling' | |
runs-on: [ubuntu-latest] | |
timeout-minutes: 10 | |
steps: | |
- name: 'Check out code' | |
uses: actions/checkout@v4 | |
- name: 'Set up environment' | |
uses: ./.github/actions/setup-env | |
with: | |
install-k: true | |
- name: 'Run profiling' | |
run: | | |
make profile PROF_ARGS=-n2 | |
find /tmp/pytest-of-${USER}/pytest-current/ -type f -name '*.prof' | sort | xargs tail -n +1 | |
integration-tests: | |
needs: code-quality-checks | |
name: 'Integration Tests' | |
runs-on: [ubuntu-latest] | |
timeout-minutes: 40 | |
steps: | |
- name: 'Check out code' | |
uses: actions/checkout@v4 | |
- name: 'Set up environment' | |
uses: ./.github/actions/setup-env | |
with: | |
install-k: true | |
- name: 'Run integration tests' | |
run: make test-integration TEST_ARGS='-n2 --timeout 300' | |
regression-tests: | |
needs: code-quality-checks | |
name: 'K Regression Tests' | |
runs-on: [ubuntu-latest] | |
timeout-minutes: 30 | |
steps: | |
- name: 'Check out code' | |
uses: actions/checkout@v4 | |
- name: 'Set up environment' | |
uses: ./.github/actions/setup-env | |
with: | |
install-k: true | |
- name: 'Run K regression tests' | |
run: make test-regression-new -j2 | |
build-on-nix: | |
needs: code-quality-checks | |
name: 'Build on Nix' | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-13] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: 'Check out code' | |
uses: actions/checkout@v4 | |
- name: 'Install Nix/Cachix' | |
uses: cachix/install-nix-action@v26 | |
with: | |
install_url: https://releases.nixos.org/nix/nix-2.13.3/install | |
extra_nix_config: | | |
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | |
- uses: cachix/cachix-action@v14 | |
with: | |
name: k-framework | |
authToken: '${{ secrets.CACHIX_PUBLIC_KEY }}' | |
- name: 'Build pyk' | |
run: GC_DONT_GC=1 nix build --print-build-logs .#pyk-python310 | |
build-docker: | |
needs: code-quality-checks | |
name: 'Build Docker Image' | |
runs-on: [self-hosted, linux, normal] | |
timeout-minutes: 10 | |
steps: | |
- name: 'Check out code' | |
uses: actions/checkout@v4 | |
- name: 'Build Docker image' | |
run: | | |
COMMIT=$(git rev-parse --short=7 HEAD) | |
K_VERSION=$(cut --delim=v --field=2 deps/k_release) | |
PYK_VERSION=$(cat package/version) | |
docker build . \ | |
-f package/Dockerfile \ | |
--build-arg K_VERSION=${K_VERSION} \ | |
--build-arg PYK_VERSION=${PYK_VERSION} \ | |
--tag runtimeverificationinc/kframework-pyk:${COMMIT} | |
docker run --rm runtimeverificationinc/kframework-pyk:${COMMIT} | |
docker run --rm runtimeverificationinc/kframework-pyk:${COMMIT} kompile --version |