Pushing new branch will cause a dedicated build cache to be created
for that branch. This will help avoic scenarios where branches were
causing updates to our build cache which would then be out of sync
with main and caused nightlies to fail.
There was a filename mismatch for the package signing private
key between the distribution scripts and Gitlab's secure file
storage. Changed the private key filename in the script to
match the storage.
The rsync push successfully put the new repo files on the repo
server, but also left the original files in place which caused
old packages and repo errata to build up over time. Adding the
--delete switch results removal of files on the repo server
that were deleted as part of the the distribution scripts
"Clean and reset the workspaces" section.
- Restructured linux repo directory structure to include Stable and Nightly releases
- Reworked Earthfile to pass IS_NIGHTLY boolean to package build scripts for use in
file names
- Added nightly pipeline to CICD config yaml. Pipeline is triggered by IS_NIGHTLY
variable
- Two distribution scripts now exist, one for Stable and one for Nightly
- Reworked RPM build spec files to create appropriate file names
- Reworked debian release generation scripts
- RPM repo directory structure is prepped for arm64 builds
- Switched from scp to rsync for moving the completed repo from ochestration
to repo server
- Created schedule in Gitlab UI to trigger nightly release at 2300 Central Time
Each machine needed a script this specified that machine's arch
and OS type. Also added a rule on the cache and test jobs to not
run if the dry run trigger is present. [ci dryrun]
The previous trigger condition wasn't liked by Gitlab's
yaml parser. I'm switching to trying a commit message
based regex trigger. This message does not contain the
trigger and so should not fire the dry run.
The dry run should now be configured if changes to .gitlab-ci.yml,
Earthfile, contents of scripts/cicd, or contents of package arrive
as the result of a push OR merge but NOT when a tag is present. I
think that will prevent the dry run executing alongside the actual
release process when a new release tag is pushed but that also
contains changes to the above mentioned files. <fingers crossed emoji>
Dry run will now trigger for Earthfile changes. I also reordered the
changelog in veilid-server.spec to descending to correct that error.
Commented out the crates.io publishing dry run. This branch does not
have access to the protected variables.
This is the first attempt at setting up a dry run pipeline
to test changes to the CICD config without actually publishing
the compiled binaries and packages built by the process.
The dry run should be triggered by any changes to .gitlab-ci.yml
or changes to any of the scripts under scripts/cicd/.
The paths work now, but the scripts are not set with execute permission.
I don't know if that permission will survive the transfer from my machine
across the git and runner stuff so I added an explicit call for bash instead.
The runner ID CI variable resolved to the runners' numeric ID whereas
the project path uses the runners' alpha-numeric formatted ID. Both
IDs show in Gitlab's settings->cicd->runners. For the time being, I've
hardcoded the alpha-numeric ID into the script paths in the CI config.
If we have to retate runners, we will need to update these entries.
I thought CICD's working directory was in the project root but the release
failed to find the scripts. I've changed the script executions to absolute
paths. There's a directory is named for the runner's ID, is different on
each machine, and changes if the runner is replaced. There's a variable
that should overcome this, CI_RUNNER_ID, which I've used in the asbolute
paths. Fingers crossed, let's try it again.
Copied CICD scripts into the repository so that the community can make
contributions to the build system. Wrote a brief description of the
build and distribute process. Modified the CICD config to use the repo
hosted scripts. [ci skip]
Added guilds for setting up a public bootstrap, a dev network,
and config templates for dev nodes. Added link in the contribution
guide to dev network setup guide.
Adding in a little more text to help the reader better understand
what this module is, its prereqs, and point to the demo app as
an example how an app is structured.
Comments added to Cargo.toml caused faulty parsing of the version
number by package/cargo_version.sh. Adding the -w switch to grep
fixes this by matching on the whole word 'version' and not matching
on words such as 'Bumpversion'.
Changed the name of the unit tests CI job to accuratly reflect
that both AMD64 and ARM64 tests are executed.
Modified the contribution guide to specify that contributors
should work inside their own fork of the project.
Version bumping was causing an issue where a new git tag and commit was created
before Cargo.toml was updated. This merge turns off auto tag and commit creation
and moves them to the process document.
Added the standard Python entries to gitignore plus included
veilid-python/demo/.demokeys to prevent personal keys from
being saved in the upstream repository
Added and modified documentation for the contribution process.
Added the code of conduct file.
Modified bump version's conf to auto create tags and commits.