Compare commits

..
Author SHA1 Message Date
zramsay 067c618321 squash me
debug
2023-09-28 09:18:21 -04:00
zramsay c8c8ce9788 gitea test 2023-09-27 17:25:25 -04:00
Zach bc78c5e0d6 Update README.md (#544) 2023-09-27 17:07:30 -04:00
dboreham 7fd2439aa9 Fix output text (#548) 2023-09-27 15:04:13 -06:00
dboreham eca5aae991 Document self-update command (#547) 2023-09-27 14:57:48 -06:00
7 changed files with 160 additions and 13 deletions
+51
View File
@@ -0,0 +1,51 @@
name: Test Gitea
on:
pull_request:
branches: '*'
push:
branches:
- main
- zach-test
- new-gitea-test
# Needed until we can incorporate docker startup into the executor container
env:
DOCKER_HOST: unix:///var/run/dind.sock
jobs:
test:
name: "Run Gitea package registry test"
runs-on: ubuntu-latest
steps:
- name: 'Update'
run: apt-get update
- name: 'Setup jq'
run: apt-get install jq -y
- name: 'Check jq'
run: |
which jq
jq --version
- name: "Clone project repository"
uses: actions/checkout@v3
- name: "Install Python"
uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: "Print Python version"
run: python3 --version
- name: "Install shiv"
run: pip install shiv
- name: "Generate build version file"
run: ./scripts/create_build_tag_file.sh
- name: "Build local shiv package"
run: ./scripts/build_shiv_package.sh
- name: Start dockerd # Also needed until we can incorporate into the executor
run: |
dockerd -H $DOCKER_HOST --userland-proxy=false &
sleep 5
- name: "Run gitea tests"
run: |
export CERC_SCRIPT_DEBUG=true &
./tests/gitea/test.sh
+29
View File
@@ -0,0 +1,29 @@
name: Gitea Test
on:
pull_request:
branches: '*'
push:
branches: '*'
jobs:
test:
name: "Run basic test suite"
runs-on: ubuntu-latest
steps:
- name: "Clone project repository"
uses: actions/checkout@v3
- name: "Install Python"
uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: "Print Python version"
run: python3 --version
- name: "Install shiv"
run: pip install shiv
- name: "Generate build version file"
run: ./scripts/create_build_tag_file.sh
- name: "Build local shiv package"
run: ./scripts/build_shiv_package.sh
- name: "Run gitea tests"
run: ./tests/gitea/test.sh
+8
View File
@@ -16,6 +16,7 @@ Ensure that the following are already installed:
- [Python3](https://wiki.python.org/moin/BeginnersGuide/Download): `python3 --version` >= `3.8.10` (the Python3 shipped in Ubuntu 20+ is good to go)
- [Docker](https://docs.docker.com/get-docker/): `docker --version` >= `20.10.21`
- [jq](https://stedolan.github.io/jq/download/): `jq --version` >= `1.5`
- [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git): `git --version` >= `2.10.3`
Note: if installing docker-compose via package manager on Linux (as opposed to Docker Desktop), you must [install the plugin](https://docs.docker.com/compose/install/linux/#install-the-plugin-manually), e.g. :
@@ -49,6 +50,13 @@ laconic-so version
Version: 1.1.0-7a607c2-202304260513
```
### Update
If Stack Orchestrator was installed using the process described above, it is able to subsequently self-update to the current latest version by running:
```bash
laconic-so update
```
## Usage
The various [stacks](/app/data/stacks) each contain instructions for running different stacks based on your use case. For example:
+2 -2
View File
@@ -132,8 +132,8 @@ def command(ctx, include, exclude, force_rebuild, extra_build_args):
try:
docker.run(builder_js_image_name,
remove=True,
interactive=True,
tty=True,
interactive=False,
tty=False,
user=f"{os.getuid()}:{os.getgid()}",
envs=envs,
# TODO: detect this host name in npm_registry_url rather than hard-wiring it
@@ -1,9 +1,25 @@
#!/bin/bash
# Usage: build-npm-package.sh <registry-url> <publish-with-this-version>
# Note: supply the registry auth token in CERC_NPM_AUTH_TOKEN
#
if [[ -n "$CERC_SCRIPT_DEBUG" ]]; then
set -x
fi
echo "GITEA ACTIONS 1 is: $GITEA_ACTIONS"
echo "GITEA ACTIONS 2 is: ${GITEA_ACTIONS}"
echo "token 1 is: $CERC_NPM_AUTH_TOKEN"
echo "token 2 is: ${CERC_NPM_AUTH_TOKEN}"
if [[ "$GITEA_ACTIONS" = "true" ]]; then
echo "WORKS"
else
echo "WTF"
fi
if ! [[ $# -eq 1 || $# -eq 2 ]]; then
echo "Illegal number of parameters" >&2
exit 1
@@ -28,17 +44,20 @@ npm config set @lirewine:registry ${local_npm_registry_url}
local_npm_registry_url_fixed=$( echo ${local_npm_registry_url} | sed -e 's/^http[s]\{0,1\}://')
npm config set -- ${local_npm_registry_url_fixed}:_authToken ${CERC_NPM_AUTH_TOKEN}
# First check if the version of this package we're trying to build already exists in the registry
# but this line: "jq -r .data.dist.tarball" fails only in gitea, so skip this block
if [[ "${GITEA_ACTIONS}" != "true" ]]; then
package_exists=$( yarn info --json ${package_name}@${package_publish_version} 2>/dev/null | jq -r .data.dist.tarball )
if [[ ! -z "$package_exists" && "$package_exists" != "null" ]]; then
echo "${package_publish_version} of ${package_name} already exists in the registry"
if [[ ${CERC_FORCE_REBUILD} == "true" ]]; then
# Attempt to unpublish the existing package
echo "NOTE: unpublishing existing package version since force rebuild is enabled"
npm unpublish --force ${package_name}@${package_publish_version}
else
echo "skipping build since target version already exists"
exit 0
fi
if [[ ! -z "$package_exists" && "$package_exists" != "null" ]]; then
echo "${package_publish_version} of ${package_name} already exists in the registry"
if [[ ${CERC_FORCE_REBUILD} == "true" ]]; then
# Attempt to unpublish the existing package
echo "NOTE: unpublishing existing package version since force rebuild is enabled"
npm unpublish --force ${package_name}@${package_publish_version}
else
echo "skipping build since target version already exists"
exit 0
fi
fi
fi
echo "Build and publish ${package_name} version ${package_publish_version}"
yarn install
+1 -1
View File
@@ -87,4 +87,4 @@ def command(ctx, check_only):
print(f"Replacing: {shiv_binary_path} with {temp_download_path}")
os.replace(temp_download_path, shiv_binary_path)
if not ctx.obj.quiet:
print("Done. Run \"laconic-so version\" to see the newly installed version")
print("Run \"laconic-so version\" to see the newly installed version")
+40
View File
@@ -0,0 +1,40 @@
#!/usr/bin/env bash
set -e
export CERC_SCRIPT_DEBUG=true
if [ -n "$CERC_SCRIPT_DEBUG" ]; then
set -x
fi
# Dump environment variables for debugging
echo "Environment variables:"
env
echo "holla 1 $GITEA_ACTIONS"
echo "Running gitea test"
# Bit of a hack, test the most recent package
TEST_TARGET_SO=$( ls -t1 ./package/laconic-so* | head -1 )
# Set a non-default repo dir
export CERC_REPO_BASE_DIR=~/stack-orchestrator-gitea-test
echo "Testing this package: $TEST_TARGET_SO"
echo "Test version command"
reported_version_string=$( $TEST_TARGET_SO version )
echo "Version reported is: ${reported_version_string}"
echo "Cloning repositories into: $CERC_REPO_BASE_DIR"
rm -rf $CERC_REPO_BASE_DIR
mkdir -p $CERC_REPO_BASE_DIR
$TEST_TARGET_SO --stack build-support build-containers
$TEST_TARGET_SO --stack package-registry setup-repositories
$TEST_TARGET_SO --stack package-registry build-containers
output=$($TEST_TARGET_SO --stack package-registry deploy-system up)
token=$(echo $output | grep -o 'export CERC_NPM_AUTH_TOKEN=[^ ]*' | cut -d '=' -f 2)
export CERC_NPM_AUTH_TOKEN=$token
export GITEA_ACTIONS=true
echo "holla 2 $GITEA_ACTIONS"
$TEST_TARGET_SO --stack fixturenet-laconicd setup-repositories
$TEST_TARGET_SO --stack fixturenet-laconicd --verbose --debug build-npms --include laconic-sdk
# Clean up
$TEST_TARGET_SO --stack package-registry deploy-system down
echo "Test passed"