name: ci/cd to build and push docker image in private registry #https://docs.docker.com/build/ci/github-actions/push-multi-registries/ #https://www.devsync.se/ci/cd/docker/2023/10/27/gitea-runner-build-docker-containers.html on: push: tags: - '*' jobs: build-push-docker-image: # see on runner /data/.runner to add label (test => test:docker://debian:bullseye) runs-on: test container: debian:bullseye # runs-on: ubuntu-latest # container: node:16-bullseye steps: - name: Show version and repository run: echo "Runner working on repository ${{ gitea.repository }} and on tag ${{ gitea.ref_name }}" - run: echo "🐧 This job is now running on a ${{ runner.image }} container" - name: Install dnsutils and git (github actions) run: | apt-get update apt-get -y install dnsutils git - name: Install node (github actions) run: | apt-get update && apt-get install -y ca-certificates curl gnupg install -m 0755 -d /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg NODE_MAJOR=${{ vars.NODE_MAJOR_VERSION }} echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list apt-get update && apt-get install nodejs -y - name: Git clone private repository uses: actions/checkout@v4 with: repository: ${{ gitea.repository }} token: ${{ secrets.ACCESS_TOKEN_GIT }} - name: Install Docker run: | apt-get update apt-get -y install ca-certificates curl gnupg install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null apt-get update apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin - name: Login to docker private registry uses: docker/login-action@v3 with: registry: ${{ vars.REGISTRY_DOCKER }} username: ${{ secrets.REGISTRY_DOCKER_USER }} password: ${{ secrets.REGISTRY_DOCKER_PASS }} - name: Build and push image in registry uses: docker/build-push-action@v5 with: context: . push: true tags: ${{ vars.REGISTRY_DOCKER }}/${{ vars.DOCKER_IMAGE_NAME }}:latest,${{ vars.REGISTRY_DOCKER }}/${{ vars.DOCKER_IMAGE_NAME }}:${{ gitea.ref_name }} - name: Show docker images run: docker images