name: Build container images on: push: branches: - "master" tags: - "*" jobs: build-image: # [ИЗМЕНЕНИЕ 1]: У нашего раннера стоит метка ubuntu-latest (как мы видели на скриншоте) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # set environment - name: Set BUILD_TIME env run: echo "BUILD_TIME=$(date)" >> $GITHUB_ENV - name: Set GIT_COMMIT env run: echo "GIT_COMMIT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - name: Prepare image tags id: image-tags run: | # [ИЗМЕНЕНИЕ 2]: Меняем репозиторий с ngoduykhanh на твой личный реестр Gitea. # ЗАМЕНИ 'admin' на свой логин в Gitea, если он отличается (и пиши его в нижнем регистре!) base=git.roskompid.org/admin/wireguard-ui app_version=dev ## Set git tag as image tag if [[ '${{ github.ref }}' == *"refs/tags/"* ]]; then github_tag="${GITHUB_REF#refs/*/}" app_version=${github_tag} SEMVER_REGEX="^v(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(\\-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$" if [[ "$github_tag" =~ $SEMVER_REGEX ]]; then github_tag=$(echo "${github_tag}" | sed 's/^v//') fi container_images=$(cat <> $GITHUB_OUTPUT echo "$container_images" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT echo "APP_VERSION=${app_version}" >> $GITHUB_ENV # [ИЗМЕНЕНИЕ 3]: QEMU и Buildx отлично работают внутри DinD, оставляем как есть! - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 # [ИЗМЕНЕНИЕ 4]: Авторизация в твоей Gitea вместо Docker Hub - name: Login to Gitea Container Registry uses: docker/login-action@v3 with: registry: git.roskompid.org # github.actor автоматически подставит твой логин (тот, кто сделал push) username: admin # GITEA_TOKEN генерируется самой системой для каждого запуска, его не нужно создавать руками! password: ${{ secrets.REGISTRY_PUSH }} - name: Build and push uses: docker/build-push-action@v5 with: push: true context: . platforms: linux/amd64 tags: ${{ steps.image-tags.outputs.container_images }} build-args: | APP_VERSION=${{ env.APP_VERSION }} BUILD_TIME=${{ env.BUILD_TIME }} GIT_COMMIT=${{ env.GIT_COMMIT }} # [ИЗМЕНЕНИЕ 5]: Кэш GHA поддерживается свежими версиями Gitea, оставляем! cache-from: type=gha cache-to: type=gha,mode=max