51 lines
1.6 KiB
YAML
51 lines
1.6 KiB
YAML
|
|
# /.forgejo/workflows/build.yml
|
||
|
|
name: Build
|
||
|
|
|
||
|
|
on:
|
||
|
|
push:
|
||
|
|
tags:
|
||
|
|
- "v[0-9]+.[0-9]+.[0-9]+"
|
||
|
|
- "v[0-9]+.[0-9]+.[0-9]+*"
|
||
|
|
workflow_dispatch:
|
||
|
|
|
||
|
|
env:
|
||
|
|
REGISTRY: ${{ vars.CONTAINER_REGISTRY }}
|
||
|
|
REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }}
|
||
|
|
REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
|
||
|
|
CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }}/${{ vars.CONTAINER_IMAGE_NAME }}
|
||
|
|
IMAGE_VERSION: build
|
||
|
|
|
||
|
|
jobs:
|
||
|
|
build:
|
||
|
|
runs-on: ubuntu-latest
|
||
|
|
steps:
|
||
|
|
- name: Checkout repository
|
||
|
|
uses: actions/checkout@v4
|
||
|
|
- name: Set up Docker Buildx
|
||
|
|
uses: docker/setup-buildx-action@v2
|
||
|
|
with:
|
||
|
|
config-inline: |
|
||
|
|
[registry."${{ env.REGISTRY }}"]
|
||
|
|
ca=["/etc/ssl/certs/ca-certificates.crt"]
|
||
|
|
- name: Tag Version
|
||
|
|
run: |
|
||
|
|
if [[ "${{ github.event_name }}" == "push" ]]; then
|
||
|
|
echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/v//g' >> $GITHUB_ENV
|
||
|
|
else
|
||
|
|
echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV
|
||
|
|
fi
|
||
|
|
- name: Login in to registry
|
||
|
|
uses: docker/login-action@v2
|
||
|
|
with:
|
||
|
|
registry: ${{ env.REGISTRY }}
|
||
|
|
username: ${{ env.REGISTRY_USERNAME }}
|
||
|
|
password: ${{ env.REGISTRY_PASSWORD }}
|
||
|
|
- name: Build and push docker image
|
||
|
|
uses: docker/build-push-action@v3
|
||
|
|
with:
|
||
|
|
platforms: linux/amd64
|
||
|
|
context: .
|
||
|
|
file: ./docker/Dockerfile
|
||
|
|
tags: ${{ env.CONTAINER_IMAGE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}:${{ env.IMAGE_VERSION }}
|
||
|
|
push: true
|