Compare commits

..

9 commits
v1.0.1 ... main

4 changed files with 51 additions and 19 deletions

View file

@ -8,6 +8,10 @@ on:
PROJECT_ID:
required: true
type: string
DOCKER_REGISTRY:
required: false
type: string
default: git.kvant.cloud
jobs:
build_and_push:
@ -26,7 +30,9 @@ jobs:
tags: |
type=ref,event=branch,branch=dev,suffix=-{{sha}},optional=true
type=ref,event=branch,branch=dev,value=dev,optional=true
type=match,event=tag,pattern=v(.*),group=1,prefix=v,optional=true
type=match,event=tag,pattern=.*_?(v\d+\.\d+\.\d+(?:-[\w\d.-]+)?),group=1,prefix=,optional=true
type=match,event=tag,pattern=.*_?(v\d+\.\d+\.\d+(?:-[\w\d.-]+)?),value=latest,optional=true
type=match,event=tag,pattern=.*v(\\d+\\.\\d+\\.\\d+).*,group=1,prefix=v,optional=true
- name: Print (debug) Docker meta JSON
uses: https://github.com/actions/github-script@v8
@ -45,7 +51,7 @@ jobs:
- name: Login into gitea registry
uses: docker/login-action@v3
with:
registry: git.kvant.cloud
registry: ${{ inputs.DOCKER_REGISTRY }}
username: ${{ inputs.PACKAGE_WRITER_USERNAME }}
password: ${{ secrets.PACKAGE_WRITER_TOKEN }}

View file

@ -5,6 +5,10 @@ on:
PACKAGE_WRITER_USERNAME:
required: true
type: string
DOCKER_REGISTRY:
required: false
type: string
default: git.kvant.cloud
jobs:
build_and_push:
runs-on: ubuntu-latest
@ -22,10 +26,8 @@ jobs:
tags: |
type=ref,event=branch,branch=dev,suffix=-{{sha}},optional=true
type=ref,event=branch,branch=dev,value=dev,optional=true
type=match,event=tag,pattern=v(.*),group=1,prefix=v,optional=true
type=match,event=tag,pattern=v(.*),value=latest,optional=true
flavor: |
latest=false
type=match,event=tag,pattern=v(\d+\.\d+\.\d+(?:-[\w\d.-]+)?),group=1,prefix=v,optional=true
type=match,event=tag,pattern=v(\d+\.\d+\.\d+(?:-[\w\d.-]+)?),value=latest,optional=true
- name: Print (debug) Docker meta JSON
uses: https://github.com/actions/github-script@v8
@ -49,7 +51,7 @@ jobs:
- name: Login into gitea registry
uses: docker/login-action@v3
with:
registry: git.kvant.cloud
registry: ${{ inputs.DOCKER_REGISTRY }}
username: ${{ inputs.PACKAGE_WRITER_USERNAME }}
password: ${{ secrets.PACKAGE_WRITER_TOKEN }}

View file

@ -41,6 +41,10 @@ jobs:
env:
NO_YARN_POSTINSTALL: 1
FONTAWESOME_PACKAGE_TOKEN: ${{ secrets.FONTAWESOME_PACKAGE_TOKEN }}
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_API: ${{ vars.TURBO_API }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
TURBO_URL: ${{ vars.TURBO_URL }}
steps:
- name: Checkout repository
uses: actions/checkout@v5

View file

@ -8,13 +8,31 @@ GitHub (forgejo) pipelines and other CI/CD utilities for the frontends Phoenix T
## .Github Workflows: Build and push containers
### Docker / Container build
Containers are built using dedicated `Dockerfile`s located in the `/docker` directory within each project repository. After the build, the images are pushed to the registry.
### `Build`
### Tagging
Only tags following the specified patterns will be considered within container tags. Any other patterns will be ignored, ensuring adherence to the established tagging policy.
#### Standalone
- v1.0.0
- v1.0.0-\<anything\>
#### Monorepo
- <project_id>\_v1.0.0
- <project_id>\_v1.0.0-\<anything\>
### Pipelines
#### `Build`
A standard single-repository project with a `package.json` file located at the root, managing dependencies for the entire project.
##### Vars (inherited)
###### Vars (inherited)
Setuped on org or repo level.
@ -22,13 +40,13 @@ Setuped on org or repo level.
| ------------ | --------------- | -------- |
| `IMAGE_PATH` | Image base path | ✓ |
##### Inputs
###### Inputs
| Key | Description | Required |
| ------------------------- | ------------------------------- | -------- |
| `PACKAGE_WRITER_USERNAME` | User name of the package writer | ✓ |
##### Secrets
###### Secrets
Note: Secrets must be explicitly passed to workflows, even if they are defined at the repository or organization level. This is due to the way Forgejo handles secrets in workflows.
@ -37,11 +55,11 @@ Note: Secrets must be explicitly passed to workflows, even if they are defined a
| `PACKAGE_WRITE_TOKEN` | Accesstoken of the package writer | ✓ |
| `FONTAWESOME_PACKAGE_TOKEN` | Fontawesome Pro library token (Only needed if FA in use ) | |
### `Build-Monorepo`
#### `Build-Monorepo`
A monorepo project based on Turborepo, with individual projects located under the `/apps/<PROJECT_ID>` directory.
##### Vars (inherited)
###### Vars (inherited)
Setuped on org or repo level.
@ -51,14 +69,14 @@ Setuped on org or repo level.
| `TURBO_TEAM` | Turbo repo team ID | |
| `TURBO_API` | Turbo repo api url | |
##### Inputs
###### Inputs
| Key | Description | Required |
| ------------------------- | ------------------------------- | -------- |
| `PACKAGE_WRITER_USERNAME` | User name of the package writer | ✓ |
| `PROJECT_ID` | ID of the projcet | ✓ |
##### Secrets
###### Secrets
Note: Secrets must be explicitly passed to workflows, even if they are defined at the repository or organization level. This is due to the way Forgejo handles secrets in workflows.
@ -70,11 +88,13 @@ Note: Secrets must be explicitly passed to workflows, even if they are defined a
## .Github Workflows: Linting, type checking, code analyzis, dependency tracking
### `Lint`
### Pipelines
#### `Lint`
Linting, type checking, sonarqube, dependency tracking, any testing
##### Vars (inherited)
###### Vars (inherited)
Setuped on org or repo level.
@ -84,7 +104,7 @@ Setuped on org or repo level.
| `TURBO_API` | Turbo repo api url (only applicable on monorepos) | |
| `SONAR_HOST_URL` | Sonarqube Host (required if sonarqube is enabled) | |
##### Inputs
###### Inputs
| Key | Description | Required |
| -------------------- | ---------------------------------------------------------------------------------- | -------- |
@ -95,7 +115,7 @@ Setuped on org or repo level.
| `LINT_SCRIPT` | Script which runs eslint; default: `yarn run lint` | |
| `CHECK_TYPES_SCRIPT` | Script which runs tsc type checking: `yarn run check-types` | |
##### Secrets
###### Secrets
Note: Secrets must be explicitly passed to workflows, even if they are defined at the repository or organization level. This is due to the way Forgejo handles secrets in workflows.