Skip to content
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

Docs CI CD #1785

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Docs CI CD #1785

wants to merge 1 commit into from

Conversation

f1sh1918
Copy link
Contributor

Short description

I added some docs for ci/cd because we mostly finished that milestone.
I copied the structure from integreat and adjusted and added some parts.

Proposed changes

  • add documentation for ci/cd
  • rename productions setup to manual release and remove some deprecated information
  • rename workflows to have a common syntax

Side effects

  • some workflows may not be triggered, since some renamings were wrong. Check the parameters in each workflow and @common.yml

@ztefanie and @steffenkleinle maybe you could double check variables and dependencies section. I probably forgot sth or did not adjust properly
I hope that helps you to trigger release and make troubleshooting

…ease, adjust workflow names to have same syntax.
Copy link
Member

@ztefanie ztefanie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding documentation 👍 💯

@@ -12,10 +12,10 @@ parameters:
default: "run_if_on_main"
type: enum
enum: ["run_if_on_main", "run", "skip"]
run_deliver_beta_backend_administration:
run_delivery_beta_backend_administration:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Previously all workflows were named consistently:
run_[verb]_[beta/prodcution]_[plattform]

Now you changed the ´deliver´ to delivery and it is the only workflow that has inconsistent naming. I suggest to undo this change

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not all workflows were named consistently.
There were deliver and delivery
For integreat we also use delivery, so i thought we may also use it here. I think run(verb) and delivery (noun) is also valid tbh

| Workflow | Schedule/Trigger | Checks | native delivery | backend_administration delivery | Version bump |
|--------------------------------------------|------------------|--------------------|-----------------|---------------------------------|--------------------|
| commit | commits of PRs | :heavy_check_mark: | :x: | :x: | :x: |
| commit_main | commits on main | :x: | :x: | :x: | :x: |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checks are executed both on commit and commit_main

| commit | commits of PRs | :heavy_check_mark: | :x: | :x: | :x: |
| commit_main | commits on main | :x: | :x: | :x: | :x: |
| delivery_beta_all | script | :heavy_check_mark: | beta | beta | :heavy_check_mark: |
| promote_all | script | :x: | promotion | promotion | :x: |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"script" is a misleading wording here, suggesting somewhere scripts are starting these workflows. I would just write "manual" as the trigger?

- TypeScript checks
- Unit testing with jest
- Building the app
- Backend health
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That needs to be adjusted. checks that are executed are everything that happens in these

  • check
  • check_backend
  • check_administration
  • check_frontend

including e.g. ktlint, backend unit tests, checking circleci config, dart formatting...


Steps executed if _Version bump_ is checked :heavy_check_mark::

- Bump version: Bump the version(s) and create a tag and release on github
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would only reference to the app-toolbelt repository here and not document behavior from another repository, which makes it annoying to maintain.

| CREDENTIALS_KEYSTORE_PATH | Path to the OpenSSL AES256-CBC encrypted Java Keystore file | - | /home/circleci/credentials/<secret>.enc | Look for the `openssl enc` command in the Android Fastlane file for more information |
| KEYSTORE_PATH | Path to the decrypted Java Keystore file | - | /home/circleci/keystore.jks | - |
| CREDENTIALS_KEYSTORE_PASSWORD | Password for decrypting the keystore using OpenSSL | | password | - |
| KEYSTORE_KEY_ALIAS | Alias of the key within the Java Keystore | You should look in the JKS file using `keytool -list -v -keystore <jks>` | my-key | - |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is specific per project and the env variables are called this:
KEYSTORE_KEY_ALIAS_BAYERN
KEYSTORE_KEY_ALIAS_NUERNBERG
KEYSTORE_KEY_ALIAS_KOBLENZ
KEYSTORE_KEY_PASSWORD_BAYERN
KEYSTORE_KEY_PASSWORD_NUERNBERG
'KEYSTORE_KEY_PASSWORD_KOBLENZ


## Hints and Quirks

### CPU count aka. \$TOTAL_CPUS
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do not do this in entitlementcard, it is Integreat specific


## Troubleshooting

This section lists some commands that may help you to find and solve issues in a new deployment on staging or production server.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice thanks for adding these instructions. Please move them to a separate file as this is not CICD releated.

- Set a new tag with `<version>`
- Generate release notes and update CHANGELOG.md
- Update version in `/administration/package.json` and `frontend/pubspec.yaml`
- Create a release branch on current main: `release-<version> f.e. "release-2024.11.1` (check out the `version.json` in root folder and increment it)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe you can link here to the "how to get the version section" you wrote in the cicd.md

- Create PR to main branch
- Trigger `delivery_beta_all` workflow or `delivery_beta_natve` or `delivery_beta_backend_administration` if you just want to create a release artifact for a particular platform
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add a hint delivery_beta_natve or delivery_beta_backend_administration is not recommended.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants