53 Commits

Author SHA1 Message Date
E M
77e8d6d64a
create the terraform cache dir first 2026-05-28 15:41:26 +10:00
E M
0e298bddbd
add debug output 2026-05-28 15:41:26 +10:00
E M
48b444d8fe
change script so it doesn't non-zero exit when no pods exist 2026-05-28 15:41:26 +10:00
E M
7a9b93a981
fix terraform cache, should remove warning 2026-05-28 15:41:26 +10:00
E M
d4d52c008a
fix polling script 2026-05-28 15:41:26 +10:00
E M
3ed677c9d1
check pod phase instead 2026-05-28 15:41:26 +10:00
E M
cd972ef9bb
refactor polling loop 2026-05-28 15:41:26 +10:00
E M
1696aa83a9
temp comment out releasee workflow 2026-05-28 15:41:26 +10:00
E M
a901e1495c
temp comment out build workflow 2026-05-28 15:41:26 +10:00
E M
7f782cf6a1
temp comment out build to make testing ci changes faster 2026-05-28 15:41:26 +10:00
E M
dabdc6d3e9
Keeps timing out waiting for start, so try polling loop 2026-05-28 15:41:26 +10:00
E M
3cb3a176b2
wait for runners-ci node to be ready before continuing workflow 2026-05-28 15:41:26 +10:00
E M
ea5110246c
reorder wait command flags 2026-05-28 15:41:25 +10:00
E M
4732b44e36
Show storage node logs URL in workflow summary 2026-05-28 15:41:25 +10:00
E M
a9f878effb
move RELEASE_TESTS_GCP_PROJECT from secret to var for logging URL 2026-05-28 15:41:25 +10:00
E M
ba49d8b223
bump kubectl to latest 2026-05-28 15:41:25 +10:00
E M
ca138cf2bf
change pod condition to wait for (create) 2026-05-28 15:41:25 +10:00
E M
c93b8c0ec2
reusable workflow outputs can silently fail to propagate in certain conditions
Now, STORAGEDOCKERIMAGE is:
- logosstorage/logos-storage-nim:latest-dist-tests for workflow_dispatch on a branch
- logosstorage/logos-storage-nim:v0.1.8-dist-tests for a v0.1.8 tag push
2026-05-28 15:41:25 +10:00
E M
159e1def65
wait for an existing pod before completing step 2026-05-28 15:41:25 +10:00
E M
bc7a277d9b
chore: reduce GKE release test cluster provisioning time and cost
- Configure runners-ci node pool inline in the cluster resource instead
  of using remove_default_node_pool=true, eliminating the
  provision-then-delete cycle that added ~5 min to terraform apply
- Remove the separate infra pool; runners-ci is now the only pool on
  the critical path of cluster creation
- Set tests-pods pool min_node_count=0 so no node is provisioned at
  apply time — nodes scale up only when test pods are scheduled
- Enable spot instances on the tests-pods pool for ~60-91% cost saving
- Add 60 min job timeout to release-tests to bound hung cluster cost
- Add Terraform plugin cache keyed on the lock file to skip provider
  re-downloads on subsequent runs (~30-60s saved)
- Install gke-gcloud-auth-plugin via setup-gcloud to fix kubectl auth

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 15:41:25 +10:00
E M
cf6d93f52c
chore: use zonal GKE cluster to reduce provisioning time
Switch cluster and all node pools from regional to zonal (`europe-west4-b`) to avoid the 40+ minute provisioning time of a regional (multi-zone) cluster. Adds a `zone` variable to the GKE module and cluster config, and updates the workflow's `gcloud get-credentials` call to use `--zone` instead of `--region`.
2026-05-28 15:41:25 +10:00
E M
2e82a4a15c
rename cluster to match previous change 2026-05-28 15:41:25 +10:00
E M
582576675e
add permissions to gcp auth 2026-05-28 15:41:24 +10:00
E M
7c74437bb7
Port terraform cluster creation/destruction from digital ocean to gcp 2026-05-28 15:41:24 +10:00
E M
1a376d80db
chore: rename Codex references to Logos Storage in release tests
Replace all "Codex" branding in the release test workflow and supporting
files: rename the K8s cluster, Terraform state key, secret, log paths,
env var (CODEXDOCKERIMAGE → STORAGEDOCKERIMAGE), and test runner image
(cs-codex-dist-tests → logos-storage-dist-tests) to align with the
already-updated logos-storage-nim-cs-dist-tests repo in https://github.com/logos-storage/logos-storage-nim-cs-dist-tests/pull/124. Also fix the
dotnet test path to the correct Tests/LogosStorageReleaseTests directory.
2026-05-28 15:41:24 +10:00
E M
b3e88603bd
Update workflow success condition 2026-05-28 15:41:24 +10:00
E M
d7ad50a924
export kubeconfig values so template works 2026-05-28 15:41:24 +10:00
E M
3e1a92c7ab
Create static kubeconfig with bearer token
Replace the use of doctl as a credential manager for executing k8s calls with a freshly created bearer token (expires after 2h). Avoids passing a DO personal access token to the cs-dist-tests runner pod.
2026-05-28 15:41:24 +10:00
E M
673c2990a7
wait for pod to start before streaming logs 2026-05-28 15:41:24 +10:00
E M
fa78cdb42e
prefix repository secret names with RELEASE_TESTS_ 2026-05-28 15:41:24 +10:00
E M
c9a2c6cf48
Allow workflows to be tested manually by branch 2026-05-28 15:41:24 +10:00
E M
ef1e7df82b
update workflow inputs, k8s namespace
- remove RUNNER_IMAGE because the cs-dist-tests image is dumb -- it clones the cs-dist-tests repo, checkouts the branch in BRANCH and then runs the release tests. So instead, always use the :latest image (which is built when there are commits to master)
- add the BRANCH workflow input so you can test cs-dist-test changes in the runner if needed
- remove COMMAND arg, it's always going to be 'dotnet test Tests/CodexReleaseTests'
- remove NAMESPACE env variable and just use 'default'. The cluster is ephermal and so all resources deployed are for the release tests, no namespaces needed.
2026-05-28 15:41:24 +10:00
E M
7070134678
Add workflow input for cs-dist-tests docker image
By default, the logosstorage/logos-storage-nim-cs-dist-tests:latest image will be used for the test runner in the release tests. However, if developers want to run the release tests and test changes to the runner (eg changes in the logos-storage-nim-cs-dist-tests repo), they can push their changes to a branch and manually run the `docker-runner` workflow in the logos-storage-nim-cs-dist-tests repo. This will create an image like logosstorage/logos-storage-nim-cs-dist-tests:sha-c0465a5. This image can then be used as a release tests workflow input for 'cs-dist-tests runner image'
2026-05-28 15:41:23 +10:00
E M
451356e0fe
Add release tests workflow
Adds a workflow for release tests:
- builds a docker image for launching nodes in the tests (basically has additional nimflags set)
- creates a K8s cluster in Digital Ocean
- one pod in the cluster is dedicated as the test runner (uses the logos-storage-nim-cs-dist-tests:latest image)
- the release will fail if the docker image build or the release tests fail
- the K8s cluster is torn down after the tests finish (failure or not)
2026-05-28 15:41:23 +10:00
Eric
0a6c2a5796
fix(ci): release process producing wrong artifacts (#1398) 2026-02-03 02:47:46 +00:00
Giuliano Mega
9ab8e1d671
fix: don't release unless there's a tag (#1394) 2026-01-29 16:09:37 +00:00
Eric
52d27485cd
fix(ci): Add version and tagged release variables to release workflow (#1391) 2026-01-28 06:09:17 +00:00
Eric
1c970e9ff6
chore(ci): Rename release artifacts (#1389) 2026-01-27 23:47:13 +00:00
Arnaud
7d51740f91
fix: correct zip name for libstorage zip (#1386) 2026-01-27 07:11:01 +00:00
Arnaud
ec5826ecb0
feat: include artifacts deployment in release process (#1383) 2026-01-22 11:49:58 +00:00
gmega
fdad2200f4
fix: remove cirdl from build; stop installing Rust; update Dockerfile; delete prover benchmarks 2026-01-16 16:42:57 -03:00
Arnaud
60861d6af8
chore: rename codex to logos storage (#1359) 2025-12-18 17:23:09 +00:00
Eric
6147a751f1
fix(ci): Remove macos amd release build (#1337) 2025-11-13 05:37:43 +00:00
Slava
6cf99e255c
ci: release master builds and upload them to the cloud (#1298) 2025-07-10 11:17:11 +00:00
Adam Uhlíř
d220e53fe1
ci: trigger python generator upon release (#1208) 2025-04-22 14:46:03 +00:00
Slava
1213377ac4
ci: switch out from ubuntu 20.04 (#1184)
* ci: use ubuntu-latest for coverage (#1141)

* ci: pass --keep-going to lcov and genhtml (#1141)

* ci: use ubuntu-22.04 for release workflow (#1141)

* ci: install gcc-14 on linux (#1141)

* chore: bump nim-leveldbstatic to 0.2.1
2025-04-02 09:09:43 +00:00
Slava
833e253baa
feat: switch to github arm runners (#1077)
* feat: switch to github arm runners

* chore: fabiocaccamo/create-matrix-action
2025-01-20 14:42:01 +00:00
Slava
d12de20868
ci: use rust 1.7.9 for release workflow and dockerfile (#999)
* ci: use rust 1.7.9 for release workflow (#996)

* docker: use rust 1.7.9 for docker (#996)
2024-11-25 16:13:14 +00:00
Slava
91e4e368de
Use Ubuntu 20.04 for Linux amd64 releases (#939)
* Use Ubuntu 20.04 for Linux amd64 releases (#932)

* Accept branches with the slash in the name for release workflow (#932)

* Increase artifacts retention-days for release workflow (#932)
2024-10-04 11:07:44 +00:00
Ben Bierens
4e8630791a
Rework circuit downloader (#882)
* Introduces a start method to prover

* Moves backend creation into start method

* sets up three paths for backend initialization

* Extracts backend initialization to backend-factory

* Implements loading backend from cli files or previously downloaded local files

* Wires up downloading and unzipping

* functional implementation

* Fixes testprover.nim

* Sets up tests for backendfactory

* includes libzip-dev

* pulls in updated contracts

* removes integration cli tests for r1cs, wasm, and zkey file arguments.

* Fixes issue where inner-scope values are lost before returning

* sets local proof verification for dist-test images

* Adds two traces and bumps nim-ethers

* Adds separate path for circuit files

* Create circuit dir if not exists

* fix: make sure requestStorage is mined

* fix: correct place to plug confirm

* test: fixing contracts tests

* Restores gitmodules

* restores nim-datastore reference

* Sets up downloader exe

* sets up tool skeleton

* implements getting of circuit hash

* Implements downloader tool

* sets up test skeleton

* Implements test for cirdl

* includes testTools in testAll

* Cleanup building.md

* cleans up previous downloader implementation

* cleans up testbackendfactory

* moves start of prover into node.nim

* Fills in arguments in example command

* Initializes backend in prover constructor

* Restores tests

* Restores tests for cli instructions

* Review comments by Dmitriy, part 1

* Quotes path in download instruction.

* replaces curl with chronos http session

* Moves cirdl build output to 'build' folder.

* Fixes chronicles log output

* Add cirdl support to the codex Dockerfile

Signed-off-by: Slava <20563034+veaceslavdoina@users.noreply.github.com>

* Add cirdl support to the docker entrypoint

Signed-off-by: Slava <20563034+veaceslavdoina@users.noreply.github.com>

* Add cirdl support to the release workflow

Signed-off-by: Slava <20563034+veaceslavdoina@users.noreply.github.com>

* Disable verify_circuit flag for releases

Signed-off-by: Slava <20563034+veaceslavdoina@users.noreply.github.com>

* Removes backendFactory placeholder type

* wip

* Replaces zip library with status-im/zippy library (which supports zip and tar)

* Updates cirdl to not change circuitdir folder

* Switches from zip to tar.gz

* Review comments by Dmitriy

* updates codex-contracts-eth

* Adds testTools to CI

* Adds check for access to config.circuitdir

* Update fixture circuit zkey

* Update matrix to run tools tests on Windows

* Adds 'deps' dependency for cirdl

* Adjust docker-entrypoint.sh to use CODEX_CIRCUIT_DIR env var

* Review comments by Giuliano

---------

Signed-off-by: Slava <20563034+veaceslavdoina@users.noreply.github.com>
Co-authored-by: Adam Uhlíř <adam@uhlir.dev>
Co-authored-by: Veaceslav Doina <20563034+veaceslavdoina@users.noreply.github.com>
2024-09-23 14:37:17 +00:00