-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Build Custom Kontrol Versions using a workflow (#941)
* new file: .github/workflows/kup-build-kontrol.yml - Adding a new feature to build kontrol images using kup and --overrides * Update .github/workflows/kup-build-kontrol.yml Co-authored-by: Everett Hildenbrandt <[email protected]> * modified: .github/workflows/docker-push.yml modified: .github/workflows/kup-build-kontrol.yml - Standardizing the naming between these two workflows to know which is for which - Docker-push builds a custom version of kontrol with fixed dependencies already published and built with kontrol - kup-build-kontrol.yml will build the existing kontrol code with a single new dependency modified: README.md - Adding some readme instructions. * renamed: .github/workflows/docker-push.yml -> .github/workflows/kontrol-push-fixed-deps.yml renamed: .github/workflows/kup-build-kontrol.yml -> .github/workflows/kontrol-push-unfixed-deps.yml modified: README.md - Add some background between the two kontrol build workflows * modified: README.md -- Adding content to explain the two custom kontrol build workflows * Update README.md Co-authored-by: Anton Savienko <[email protected]> * Filling in the 'get' placeholder with functionality to fetch appropriate defaults when nothing is provided * modified: README.md - Adding instructions to fetch hash and use the wrofklow with multiple dep options now available * Update spelling and gramar * modified: .github/workflows/kontrol-push-unfixed-deps.yml - Fixing reporting of final versions used to build kontrol. - Removing dfining override for undefined inputs to the workflow --------- Co-authored-by: Everett Hildenbrandt <[email protected]> Co-authored-by: Anton Savienko <[email protected]>
- Loading branch information
1 parent
8cfd6be
commit 8d7b584
Showing
3 changed files
with
143 additions
and
3 deletions.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
--- | ||
name: 'Push Kontrol w/ Dependencies' | ||
on: | ||
workflow_dispatch: | ||
inputs: | ||
kevm-version: | ||
description: 'Branch/Tag to use for KEVM' | ||
required: false | ||
default: '' | ||
k-version: | ||
description: 'Branch/Tag to use for K' | ||
required: false | ||
default: '' | ||
llvm-version: | ||
description: 'Branch/Tag to use for LLVM Backend' | ||
required: false | ||
default: '' | ||
haskell-version: | ||
description: 'Branch/Tag to use for Haskell Backend' | ||
required: false | ||
default: '' | ||
|
||
jobs: | ||
build-kontrol: | ||
runs-on: [self-hosted, normal] | ||
steps: | ||
- name: 'Login to GitHub Container Registry' | ||
uses: docker/login-action@v2 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: 'Build Kontrol' | ||
shell: bash | ||
run: | | ||
set -o pipefail | ||
docker run --rm -it --detach --name kontrol-build-with-kup-${{ github.run_id }} ghcr.io/runtimeverification/kup:latest | ||
if [ -n "${{ inputs.kevm-version }}" ]; then | ||
KEVM_OVERRIDE="--override kevm ${{ inputs.kevm-version }}" | ||
fi | ||
if [ -n "${{ inputs.k-version }}" ]; then | ||
K_OVERRIDE="--override kevm/k-framework ${{ inputs.k-version }}" | ||
fi | ||
if [ -n "${{ inputs.llvm-version }}" ]; then | ||
LLVM_OVERRIDE="--override kevm/k-framework/llvm-backend ${{ inputs.llvm-version }}" | ||
fi | ||
if [ -n "${{ inputs.haskell-version }}" ]; then | ||
HASKELL_OVERRIDE="--override kevm/k-framework/haskell-backend ${{ inputs.haskell-version }}" | ||
fi | ||
docker exec kontrol-build-with-kup-${{ github.run_id }} /bin/bash -c "kup install kontrol ${KEVM_OVERRIDE} ${K_OVERRIDE} ${LLVM_OVERRIDE} ${HASKELL_OVERRIDE}" | ||
docker exec kontrol-build-with-kup-${{ github.run_id }} /bin/bash -c "kup list kontrol --inputs" >> versions.out | ||
docker commit kontrol-build-with-kup-${{ github.run_id }} ghcr.io/runtimeverification/kontrol-custom:${{ github.run_id }} | ||
docker push ghcr.io/runtimeverification/kontrol-custom:${{ github.run_id }} | ||
- name: 'Publish Versions to Artifacts' | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: Versions | ||
path: versions.out | ||
- name: 'Publish Image Name to Workflow Summary' | ||
run: | | ||
echo "Image Name: ghcr.io/runtimeverification/kontrol-custom:${{ github.run_id }}" >> $GITHUB_STEP_SUMMARY | ||
- name: 'Tear down Docker' | ||
if: always() | ||
run: | | ||
docker stop --time=0 kontrol-build-with-kup-${{ github.run_id }} |
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