Skip to content

Commit

Permalink
Merge branch 'develop' into v6.1.0-rc
Browse files Browse the repository at this point in the history
  • Loading branch information
radumereuta committed Nov 7, 2023
2 parents 18ebddf + dd0c994 commit 0afeb35
Show file tree
Hide file tree
Showing 322 changed files with 35,096 additions and 30,949 deletions.
53 changes: 0 additions & 53 deletions .github/workflows/master-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,62 +5,9 @@ on:
- master

jobs:

nix-flake-release:
name: 'Nix flake release'
strategy:
matrix:
include:
- runner: ubuntu-20.04
os: ubuntu-20.04
- runner: macos-13
os: macos-13
- runner: MacM1
os: self-macos-12
runs-on: ${{ matrix.runner }}
timeout-minutes: 60
steps:
- name: 'Check out code'
uses: actions/checkout@v3

- name: 'Upgrade bash'
if: ${{ contains(matrix.os, 'macos') }}
run: brew install bash

- name: 'Install Nix'
if: ${{ !startsWith(matrix.os, 'self') }}
uses: cachix/install-nix-action@v22
with:
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
extra_nix_config: |
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
substituters = http://cache.nixos.org https://hydra.iohk.io
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=
- name: 'Install Cachix'
if: ${{ !startsWith(matrix.os, 'self') }}
uses: cachix/cachix-action@v12
with:
name: k-framework
authToken: '${{ secrets.CACHIX_PUBLIC_TOKEN }}'
skipPush: true

- name: 'Build and cache K Framework'
uses: workflow/nix-shell-action@v3
env:
GC_DONT_GC: 1
CACHIX_AUTH_TOKEN: '${{ secrets.CACHIX_PUBLIC_TOKEN }}'
with:
packages: jq
script: |
k=$(nix build .#k --json | jq -r '.[].outputs | to_entries[].value')
drv=$(nix-store --query --deriver ${k})
nix-store --query --requisites --include-outputs ${drv} | cachix push k-framework
gh-release:
name: 'Publish GitHub Prerelease'
runs-on: ubuntu-latest
needs: nix-flake-release
steps:
- name: 'Check out code'
uses: actions/checkout@v3
Expand Down
175 changes: 88 additions & 87 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,25 @@ jobs:
cd ${CURDIR}
gh release upload --repo runtimeverification/k --clobber v${version} ${tarball}
nix-release:
name: 'Nix Release'
runs-on: ubuntu-20.04
environment: production
cachix-release:
name: 'k-framework-binary cachix release'
strategy:
matrix:
include:
- runner: ubuntu-20.04
os: ubuntu-20.04
- runner: macos-13
os: macos-13
- runner: MacM1
os: self-macos-12
runs-on: ${{ matrix.runner }}
timeout-minutes: 60
steps:
- name: Check out code
- name: 'Check out code'
uses: actions/checkout@v3
with:
submodules: recursive

- name: Install Nix
- name: 'Install Nix'
if: ${{ !startsWith(matrix.os, 'self') }}
uses: cachix/install-nix-action@v22
with:
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
Expand All @@ -62,10 +70,26 @@ jobs:
substituters = http://cache.nixos.org https://hydra.iohk.io
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=
- name: Upload release.nix
uses: runtimeverification/[email protected]
- name: 'Install Cachix'
if: ${{ !startsWith(matrix.os, 'self') }}
uses: cachix/cachix-action@v12
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: k-framework-binary

- name: 'Publish K to k-framework-binary cache'
uses: workflow/nix-shell-action@v3
env:
CACHIX_AUTH_TOKEN: '${{ secrets.CACHIX_PRIVATE_KFB_TOKEN }}'
GC_DONT_GC: '1'
with:
packages: jq
script: |
export PATH="$(nix build github:runtimeverification/kup --no-link --json | jq -r '.[].outputs | to_entries[].value')/bin:$PATH"
kup publish k-framework-binary .#k --keep-days 180
kup publish k-framework-binary .#k.openssl --keep-days 180
kup publish k-framework-binary .#k.procps --keep-days 180
kup publish k-framework-binary .#k.openssl.procps --keep-days 180
kup publish k-framework-binary .#k.procps.openssl --keep-days 180
ubuntu-jammy:
name: 'K Ubuntu Jammy Package'
Expand All @@ -78,7 +102,7 @@ jobs:
with:
os: ubuntu
distro: jammy
llvm: 14
llvm: 15
pkg-name: kframework_amd64_ubuntu_jammy.deb
build-package: package/debian/build-package jammy
test-package: package/debian/test-package
Expand Down Expand Up @@ -118,54 +142,6 @@ jobs:
path: |
**/kore-exec.tar.gz
debian-bookworm:
name: 'K Debian Bookworm Package'
runs-on: [self-hosted, linux, normal]
timeout-minutes: 90
steps:
- uses: actions/checkout@v3
- name: 'Build and Test Package'
uses: ./.github/actions/test-package
with:
os: debian
distro: bookworm
llvm: 14
pkg-name: kframework_amd64_debian_bookworm.deb
build-package: package/debian/build-package bookworm
test-package: package/debian/test-package
- name: 'Upload Package to Release'
env:
GITHUB_TOKEN: ${{ secrets.JENKINS_GITHUB_PAT }}
run: |
set -x
version=$(cat package/version)
cp kframework_amd64_debian_bookworm.deb kframework_${version}_amd64_debian_bookworm.deb
gh release upload --repo runtimeverification/k --clobber v${version} kframework_${version}_amd64_debian_bookworm.deb
arch:
name: 'Arch Linux Package'
runs-on: [self-hosted, linux, normal]
timeout-minutes: 90
steps:
- uses: actions/checkout@v3
- name: 'Build and Test Package'
uses: ./.github/actions/test-package
with:
dockerfile: package/arch/Dockerfile
os: archlinux
distro: base
build-package: package/arch/build-package
test-package: package/arch/test-package
pkg-name: kframework_arch_x86_64.pkg.tar.zst
- name: 'Upload Package to Release'
env:
GITHUB_TOKEN: ${{ secrets.JENKINS_GITHUB_PAT }}
run: |
set -x
version=$(cat package/version)
cp kframework_arch_x86_64.pkg.tar.zst kframework_${version}_arch_x86_64.pkg.tar.zst
gh release upload --repo runtimeverification/k --clobber v${version} kframework_${version}_arch_x86_64.pkg.tar.zst
macos-build:
name: 'Build MacOS Package'
runs-on: macos-13
Expand All @@ -183,7 +159,7 @@ jobs:
uses: actions/checkout@v3
id: checkout
with:
repository: kframework/homebrew-k
repository: runtimeverification/homebrew-k
path: homebrew-k
ref: staging
continue-on-error: true
Expand All @@ -192,7 +168,7 @@ jobs:
uses: actions/checkout@v3
if: ${{ steps.checkout.outcome == 'failure' }}
with:
repository: kframework/homebrew-k
repository: runtimeverification/homebrew-k
path: homebrew-k

- name: Cache maven
Expand All @@ -203,6 +179,18 @@ jobs:
restore-keys: |
${{ runner.os }}-maven-
- name: Mac Dependencies
run: |
# Via: https://github.com/ledger/ledger/commit/1eec9f86667cad3b0bbafb82a83739a0d30ca09f
# Unlink and re-link to prevent errors when github mac runner images
# install python outside of brew, for example:
# https://github.com/orgs/Homebrew/discussions/3895
# https://github.com/actions/setup-python/issues/577
# https://github.com/actions/runner-images/issues/6459
# https://github.com/actions/runner-images/issues/6507
# https://github.com/actions/runner-images/issues/2322
brew list -1 | grep python | while read formula; do brew unlink $formula; brew link --overwrite $formula; done
- name: Build brew bottle
id: build
env:
Expand Down Expand Up @@ -259,48 +247,63 @@ jobs:
uses: actions/checkout@v3
id: checkout
with:
repository: kframework/homebrew-k
repository: runtimeverification/homebrew-k
token: ${{ secrets.JENKINS_GITHUB_PAT }}
path: homebrew-k
ref: staging
persist-credentials: false
continue-on-error: true

- name: 'Check out homebrew repo master branch'
uses: actions/checkout@v3
if: ${{ steps.checkout.outcome == 'failure' }}
with:
repository: kframework/homebrew-k
repository: runtimeverification/homebrew-k
token: ${{ secrets.JENKINS_GITHUB_PAT }}
path: homebrew-k
persist-credentials: false

- name: 'Download bottle'
uses: actions/download-artifact@v2
with:
name: homebrew
path: homebrew-k-old

- name: Mac Dependencies
run: |
# Via: https://github.com/ledger/ledger/commit/1eec9f86667cad3b0bbafb82a83739a0d30ca09f
# Unlink and re-link to prevent errors when github mac runner images
# install python outside of brew, for example:
# https://github.com/orgs/Homebrew/discussions/3895
# https://github.com/actions/setup-python/issues/577
# https://github.com/actions/runner-images/issues/6459
# https://github.com/actions/runner-images/issues/6507
# https://github.com/actions/runner-images/issues/2322
brew list -1 | grep python | while read formula; do brew unlink $formula; brew link --overwrite $formula; done
- name: 'Test brew bottle'
id: test
env:
# github actions sets the JAVA_HOME variable to Java 8 explicitly for
# some reason. There doesn't seem to be a way to tell it to unset the
# variable, so instead we just have to tell it to use Java 11
# explicitly intead.
JAVA_HOME: ${{ env.JAVA_HOME_11_X64 }}
# variable, so instead we just have to tell it to use Java 17
# explicitly instead.
JAVA_HOME: ${{ env.JAVA_HOME_17_X64 }}
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
run: |
# The macOS public runners are prone to flakiness when running this
# test suite, so the PL-tutorial is disabled for now.
# - https://github.com/runtimeverification/k/issues/3705
cd homebrew-k-old
brew tap kframework/k "file:///$(pwd)"
brew tap runtimeverification/k "file:///$(pwd)"
brew install ${{ needs.macos-build.outputs.bottle_path }} -v
cp -R /usr/local/share/kframework/pl-tutorial ~
WD=`pwd`
cd
echo 'Starting kserver...'
spawn-kserver $WD/kserver.log
cd pl-tutorial
echo 'Testing tutorial in user environment...'
make -j`sysctl -n hw.ncpu` ${MAKE_EXTRA_ARGS}
cd ~
# cp -R /usr/local/share/kframework/pl-tutorial ~
# WD=`pwd`
# cd
# echo 'Starting kserver...'
# spawn-kserver $WD/kserver.log
# cd pl-tutorial
# echo 'Testing tutorial in user environment...'
# make -j`sysctl -n hw.ncpu` ${MAKE_EXTRA_ARGS}
# cd ~
echo 'module TEST imports BOOL endmodule' > test.k
kompile test.k --backend llvm
kompile test.k --backend haskell
Expand All @@ -309,6 +312,7 @@ jobs:
uses: actions/checkout@v3
with:
path: k-homebrew-checkout
token: ${{ secrets.JENKINS_GITHUB_PAT }}

- name: 'Upload Package to Release'
env:
Expand All @@ -321,18 +325,15 @@ jobs:
mv homebrew-k-old/${BOTTLE_NAME} homebrew-k-old/${REMOTE_BOTTLE_NAME}
gh release upload --repo runtimeverification/k --clobber v${version} homebrew-k-old/${REMOTE_BOTTLE_NAME}
- name: 'Add ssh key'
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.HOMEBREW_SSH_KEY }}
known_hosts: ${{ secrets.KNOWN_HOSTS_GITHUB_COM }}
- run: |
git config --global user.name rv-jenkins
git config --global user.email [email protected]
- name: 'Commit changes'
run: |
cp homebrew-k-old/Formula/kframework.rb homebrew-k/Formula/kframework.rb
cd homebrew-k
git commit -m 'Update brew package version' Formula/kframework.rb
git remote set-url origin [email protected]:kframework/homebrew-k.git
git push origin master
- name: 'Delete Release'
Expand All @@ -348,7 +349,7 @@ jobs:
name: 'Publish Release'
runs-on: [self-hosted, linux, normal]
environment: production
needs: [nix-release, macos-build, macos-test, source-tarball, ubuntu-jammy, debian-bookworm, set-release-id, arch]
needs: [cachix-release, macos-build, macos-test, source-tarball, ubuntu-jammy, set-release-id]
steps:
- name: 'Check out code'
uses: actions/checkout@v3
Expand All @@ -372,7 +373,7 @@ jobs:
tag: k-release-ci-${{ github.sha }}
os: ubuntu
distro: jammy
llvm: 14
llvm: 15

- name: 'Push Maven Packages'
shell: bash {0}
Expand Down
Loading

0 comments on commit 0afeb35

Please sign in to comment.