-
Notifications
You must be signed in to change notification settings - Fork 786
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve: Consolidate artifact build process for all environments & Add Workflow for preparing release branch #4256
Improve: Consolidate artifact build process for all environments & Add Workflow for preparing release branch #4256
Commits on Jul 3, 2023
-
Prepare CMakeLists.txt for unified builds
- Remove CI_BUILD Cmake variable. - Convert CI_TAG from ENV variable to CMake variable - CI_VERSION_PRE_RELEASE can be set in non CI builds
Configuration menu - View commit details
-
Copy full SHA for 0bb682b - Browse repository at this point
Copy the full SHA 0bb682bView commit details -
Prepare build.sh and node Dockerfile for unified builds
- add CI_TAG and CI_VERSION_PRE_RELEASE to build.sh - add useful ARG with default values to Dockerfile so they can be passed to the build.sh script
Configuration menu - View commit details
-
Copy full SHA for 50d7093 - Browse repository at this point
Copy the full SHA 50d7093View commit details -
Prepare WIndows for unified builds
- remove CI_BUILD - convert DCI_TAG from ENV to CMake variable
Configuration menu - View commit details
-
Copy full SHA for dd56958 - Browse repository at this point
Copy the full SHA dd56958View commit details -
Convert TEST BETA and LIVE variable to NETWORK variable for easier wo…
…rkflow matrix usage
Configuration menu - View commit details
-
Copy full SHA for f25d684 - Browse repository at this point
Copy the full SHA f25d684View commit details -
Make docker builds and deploys more modular
- Remove dependency on the workflow name - COnvert $GITHUB_WORKFLOW to $NETWORK - Create smaller functions with limited scope - Create similar deploy functions for docker and github container registries (hub.docker and ghcr)
Configuration menu - View commit details
-
Copy full SHA for b86b65b - Browse repository at this point
Copy the full SHA b86b65bView commit details -
Create unified workflow to build TEST BETA and LIVE artifacts
- Remove old workflows - Create 1 workflow for all environments (Network Matrix) - Keep current build logic (build scripts still differ per OS)
Configuration menu - View commit details
-
Copy full SHA for 02afcb6 - Browse repository at this point
Copy the full SHA 02afcb6View commit details -
Remove hardcoded repo from build and deploy scripts
- skip hub.docker deploys if DOCKER_PASSWORD is not provided - Create DOCKER_HUB variable which defaults to nanocurrency (backwards compatible) - Create DOCKER_USER variable which defaults to nanoreleaseteam (backwards compatible) - create S3_BUCKET_NAME variable that defaults to repo.nano.org if not provided (backwards compatible) - only use S3_BUILD_DIRECTORY if provided
Configuration menu - View commit details
-
Copy full SHA for 847427e - Browse repository at this point
Copy the full SHA 847427eView commit details -
Make workflow repository agnostic
Convert nanocurrency/nano-env image to self built ghcr.io/${{ github.repository }} image
Configuration menu - View commit details
-
Copy full SHA for e958a40 - Browse repository at this point
Copy the full SHA e958a40View commit details -
- convert ref to CI_TAG - use CI_TAG in aws deploys
Configuration menu - View commit details
-
Copy full SHA for bacd496 - Browse repository at this point
Copy the full SHA bacd496View commit details -
Configuration menu - View commit details
-
Copy full SHA for f6e5955 - Browse repository at this point
Copy the full SHA f6e5955View commit details -
- add possibility to specify registry - use ghcr.io instead of variable for ghcr_image_name
Configuration menu - View commit details
-
Copy full SHA for f4dd847 - Browse repository at this point
Copy the full SHA f4dd847View commit details -
Configuration menu - View commit details
-
Copy full SHA for ea96554 - Browse repository at this point
Copy the full SHA ea96554View commit details -
Use config variables instead of secrets for non secret variables
- vars.S3_BUCKET_NAME - vars.S3_BUILD_DIRECTORY - vars.DOCKER_REGISTRY - vars.DOCKER_USER
Configuration menu - View commit details
-
Copy full SHA for 3ef0689 - Browse repository at this point
Copy the full SHA 3ef0689View commit details -
Configuration menu - View commit details
-
Copy full SHA for 79ad3dd - Browse repository at this point
Copy the full SHA 79ad3ddView commit details -
Make tag generation branch agnostic
The goal is to simplify tag generation process and commit the version_pre_release into CMakeLists.txt for each tag. If a user checks out a specific tag and builds it, the version_pre_release is set correctly. - remove workflow_dispatch inputs. It operates on the selected branch. - The cronjob is executed on develop branch only. - replace ci/actions/dev-build-tag-gen.sh with ci/actions/generate_next_git_tag.sh - generate_next_git_tag.sh is branch agnostic and operates on ${{ github.ref }} - generate_next_git_tag.sh succeeds even if no new tag is generated - the workflow only executes the build jobs if a new tag was created (if: ${{ needs.prepare_build.outputs.TAG_CREATED == 'true' }}) - generate_next_git_tag.sh uses V${current_version_major}.${current_version_minor}${branch_name} for tags. - for "develop" branch_name is converted to DB --> (e.g V26.0DB1) - generate_next_git_tag.sh uses a -c flag that is responsible to update CMakeLists.txt with correct version_pre_release, create and push the tag to origin.
Configuration menu - View commit details
-
Copy full SHA for 0381beb - Browse repository at this point
Copy the full SHA 0381bebView commit details -
Remove CI_VERSION_PRE_RELEASE as it has been committed to CMakeLists.…
…txt in the tag used to build the node
Configuration menu - View commit details
-
Copy full SHA for 2c936ef - Browse repository at this point
Copy the full SHA 2c936efView commit details -
- use the new prepare scripts (Linux, MacOS & Windows) - remove the need the dependency on nano-env:gcc
Configuration menu - View commit details
-
Copy full SHA for 14bf659 - Browse repository at this point
Copy the full SHA 14bf659View commit details -
Make usage of nano-env:rhel explicit
- Build the nano-env docker image in the current workflow - Use the locally built image.
Configuration menu - View commit details
-
Copy full SHA for b390221 - Browse repository at this point
Copy the full SHA b390221View commit details -
Fix typo in default BUILD_TYPE
- Remove duplicate BUILD_TYPE - move SANITIZER to ci/build-node.sh ARGs
Configuration menu - View commit details
-
Copy full SHA for 06cf680 - Browse repository at this point
Copy the full SHA 06cf680View commit details -
Make sure the existing_tags ending is numeric
- fixes a bug when we have 2 similar branches with tags (e.g. some-branch and some-branch-2)
Configuration menu - View commit details
-
Copy full SHA for a30b304 - Browse repository at this point
Copy the full SHA a30b304View commit details -
Remove --global for git config
Prevent modification of global git settings on a developer machine
Configuration menu - View commit details
-
Copy full SHA for f22ba6a - Browse repository at this point
Copy the full SHA f22ba6aView commit details -
Handling release branches differently.
- refactored script by making it more modular - script expects releases to be made from a branch called `releases/v{Major}` - add -i flag to indicate wether or not to increment the generated tag - -i increments version_minor for release branches: tag --> V{Major}.{Minor + increment} - -i increments version_pre_release for all other non-release branches: tag --> V{Major}.{Minor}{branch_name}{pre_release + increment} - -o outputs either `version_pre_release` or `version_minor` depending on the branch Prevent incrementing if no tag exists yet - make sure V{Major}.0 is created even if the user forgets to set increment to 0 Make tag_created=true explicit
Configuration menu - View commit details
-
Copy full SHA for 77ca7cb - Browse repository at this point
Copy the full SHA 77ca7cbView commit details -
Prevent output file from being created when -o is not provided
- by redefining local output=$1 it is set to 0 instead of "" and a file called 0 was created
Configuration menu - View commit details
-
Copy full SHA for e4c150b - Browse repository at this point
Copy the full SHA e4c150bView commit details -
prevent script exit from grep returning a non-zero exit status if it …
…doesn't find anything
Configuration menu - View commit details
-
Copy full SHA for 2f6ee01 - Browse repository at this point
Copy the full SHA 2f6ee01View commit details -
Add increment input to the workflow and force push if tag is unchanged
- increment is 1 by default - if increment is 0, an existing tag will be updated (origin push -f). fixup! Add increment input to the workflow
Configuration menu - View commit details
-
Copy full SHA for aa49010 - Browse repository at this point
Copy the full SHA aa49010View commit details -
Allow tag creation without file changes
- the first tag of a releases/ branch creates no changes - a tag run with increment=0 creates no changes in both cases we want to create the tag (again)
Configuration menu - View commit details
-
Copy full SHA for 105fd39 - Browse repository at this point
Copy the full SHA 105fd39View commit details -
feat: implement workflow to prepare for a new major software release
- Checks out the repository based on github.ref. - Extracts and sets current major and minor versions from CMakeLists.txt of github.ref. - Fetches the default branch name and sets it as an output. - Checks for existence of a corresponding release branch. If present, the workflow aborts, if not, it continues and sets the new release branch name. - Increments the major version in CMakeLists.txt on the default branch, commits this change, and pushes it back. - Checks out a new release branch, sets the pre-release version to 0 in CMakeLists.txt, commits this change, and pushes the new branch to the repository. fix: Configure git and fix output variables Change the order of steps to make the flow more natural Fix curl DEFAULT_BRANCH fix fix
Configuration menu - View commit details
-
Copy full SHA for 2085d64 - Browse repository at this point
Copy the full SHA 2085d64View commit details
Commits on Jul 11, 2023
-
Configuration menu - View commit details
-
Copy full SHA for b7e979a - Browse repository at this point
Copy the full SHA b7e979aView commit details -
Remove increment input from workflow
- Autodetect if we need to increment the version or not on the release branch Expected behaviour : - Running the workflow multiple times without a new commit will rebuild and republish the same artifacts - Running the workflow after a new commit was made to the releases branch will increment version_minor by 1 - the version_minor is updated in CMakeLists.txt and committed to the release branch - a new tag is created and pushed with the incremented version_minor - Make logic for both release and other branches more obvious --> TODO?: instead of force pushing, we could remove -f option if branch or tag already exist
Configuration menu - View commit details
-
Copy full SHA for 2a4fed7 - Browse repository at this point
Copy the full SHA 2a4fed7View commit details -
Configuration menu - View commit details
-
Copy full SHA for e6d115e - Browse repository at this point
Copy the full SHA e6d115eView commit details
Commits on Jul 16, 2023
-
Configuration menu - View commit details
-
Copy full SHA for e61ea84 - Browse repository at this point
Copy the full SHA e61ea84View commit details -
Apply suggestions from PR review (2/2)
Convert if/else into case..in
Configuration menu - View commit details
-
Copy full SHA for 148ec83 - Browse repository at this point
Copy the full SHA 148ec83View commit details