From 32d64b0d8cc6310c617fde68a35fd7bce4c3525a Mon Sep 17 00:00:00 2001 From: Jamie Schouten Date: Sat, 14 Sep 2024 19:42:33 +0200 Subject: [PATCH] add readme --- README.md | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..5627de5 --- /dev/null +++ b/README.md @@ -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.