name: Build Docker Image - Dev on: workflow_dispatch: push: branches: - main env: REGISTRY: docker.lechner-systems.at IMAGE_NAME: lechnersystems/maintenance jobs: docker: runs-on: ubuntu-latest permissions: contents: read steps: - name: Checkout repository uses: actions/checkout@v4 - name: Read version id: version shell: bash run: | version="$(tr -d '[:space:]' < VERSION)" if [[ ! "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+([-.+][0-9A-Za-z.-]+)?$ ]]; then echo "Invalid VERSION value: $version" >&2 exit 1 fi docker_tag="${version//+/-}" short_sha="${GITHUB_SHA::7}" echo "value=$version" >> "$GITHUB_OUTPUT" echo "docker_tag=$docker_tag" >> "$GITHUB_OUTPUT" echo "dev_tag=${docker_tag}-dev.${short_sha}" >> "$GITHUB_OUTPUT" - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log in to registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ secrets.DOCKER_REGISTRY_USERNAME }} password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }} - name: Build and push dev image uses: docker/build-push-action@v6 with: context: . push: true provenance: false build-args: | APP_VERSION=${{ steps.version.outputs.value }} VCS_REF=${{ github.sha }} tags: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.dev_tag }} labels: | org.opencontainers.image.version=${{ steps.version.outputs.value }} org.opencontainers.image.revision=${{ github.sha }} org.opencontainers.image.source=https://github.com/${{ github.repository }}