name: Docker Build on: push: branches: - main pull_request: workflow_dispatch: permissions: contents: read packages: write env: REGISTRY: gitea.mouse84.com IMAGE_NAME: kim.kanghee/idrac-info DOCKERFILE: Dockerfile BUILD_CONTEXT: . jobs: docker-build: name: Build Docker image runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Prepare Docker tag shell: bash run: | SHORT_SHA="$(printf '%s' "${GITHUB_SHA:-local}" | cut -c1-12)" IMAGE_REPO="${REGISTRY}/${IMAGE_NAME}" echo "IMAGE_REPO=${IMAGE_REPO}" >> "${GITHUB_ENV}" echo "IMAGE_TAG=${IMAGE_REPO}:${SHORT_SHA}" >> "${GITHUB_ENV}" echo "IMAGE_LATEST=${IMAGE_REPO}:latest" >> "${GITHUB_ENV}" echo "SHORT_SHA=${SHORT_SHA}" >> "${GITHUB_ENV}" - name: Show Docker version run: docker version - name: Validate iDRAC Tools packages shell: bash run: | test -f iDRACTools/racadm/UBUNTU24/x86_64/srvadmin-hapi_11.4.0.0_amd64.deb test -f iDRACTools/racadm/UBUNTU24/x86_64/srvadmin-idracadm7_11.4.0.0_all.deb test -f iDRACTools/racadm/UBUNTU24/x86_64/srvadmin-idracadm8_11.4.0.0_amd64.deb test -f iDRACTools/ipmitool/UBUNTU24_x86_64/ipmitool_1.8.18_amd64.deb - name: Build Docker image run: | docker build \ --pull \ --file "${DOCKERFILE}" \ --tag "${IMAGE_TAG}" \ --tag "${IMAGE_LATEST}" \ "${BUILD_CONTEXT}" - name: Inspect built image run: | docker image inspect "${IMAGE_TAG}" > /dev/null docker images "${IMAGE_REPO}" - name: Login to Gitea Container Registry if: gitea.event_name == 'push' && gitea.ref == 'refs/heads/main' run: | echo "${{ secrets.GITEA_TOKEN }}" | docker login "${REGISTRY}" \ --username "${{ gitea.actor }}" \ --password-stdin - name: Push Docker image if: gitea.event_name == 'push' && gitea.ref == 'refs/heads/main' run: | docker push "${IMAGE_TAG}" docker push "${IMAGE_LATEST}"