add readme

This commit is contained in:
Jamie Schouten 2024-09-14 19:42:33 +02:00
parent e97df94ac3
commit 32d64b0d8c

61
README.md Normal file
View File

@ -0,0 +1,61 @@
# Build Workflow
This is a workflow designed to automate the process of building and pushing Docker images to the registry. The workflow is triggered through the `workflow_call` event, allowing it to be reused in other workflows or repositories.
## Usage Example
In this example, the `build` workflow is invoked with a custom `tag`, `username`, and `password`. The workflow will build and push a Docker image using the provided parameters.
```yaml
jobs:
build:
uses: your-repo/.github/workflows/build.yml@main
with:
tag: v1.0.0
username: my-docker-username
password: ${{ secrets.DOCKER_PASSWORD }}
```
### Input Parameters
- **tag** (optional):
- **Type:** `string`
- **Default:** `latest`
- **Description:** Tag to be assigned to the Docker image. If not provided, it defaults to `latest`.
- **username** (optional):
- **Type:** `string`
- **Default:** `${{ vars.REGISTRY_USERNAME }}`
- **Description:** Username for the Docker registry authentication. Defaults to authenticated `registry` user.
- **password** (optional):
- **Type:** `string`
- **Default:** `${{ vars.REGISTRY_PASSWORD }}`
- **Description:** Password for the Docker registry authentication. Defaults to authenticated `registry` user.
### Steps
1. **Checkout Code:**
- **Action:** `actions/checkout@v4`
- **Description:** This step checks out the code from the repository, ensuring the latest version of the code is available for building the Docker image.
2. **Login to Docker Registry:**
- **Action:** `docker/login-action@v3`
- **Description:** Logs into the Docker registry (`git.qlic.nl`) using the provided `username` and `password` inputs.
- **Inputs:**
- `registry`: Set to `git.qlic.nl`
- `username`: Provided via `${{ inputs.username }}`
- `password`: Provided via `${{ inputs.password }}`
3. **Build Docker Image:**
- **Command:**
```bash
docker build . -t ${{ vars.REGISTRY }}/${{ gitea.repository }}:${{ inputs.tag }} -t ${{ vars.REGISTRY }}/${{ gitea.repository }}:${{ gitea.sha }}
```
- **Description:** Builds a Docker image from the current code. The image is tagged with both the user-provided `tag` (or the default `latest` if not provided) and the current Git commit SHA.
4. **Push Docker Image:**
- **Command:**
```bash
docker push ${{ vars.REGISTRY }}/${{ gitea.repository }} --all-tags
```
- **Description:** Pushes the built Docker image to the Docker registry (`git.qlic.nl`), ensuring that all tags are pushed.