75 lines
3.2 KiB
YAML
75 lines
3.2 KiB
YAML
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:
|
|
tags:
|
|
- '*'
|
|
|
|
jobs:
|
|
build-debian-runner:
|
|
# 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
|
|
runs-on: debian-runner
|
|
container:
|
|
image: ${{ vars.REGISTRY_DOCKER }}/${{ vars.DOCKER_IMAGE_NAME }}:latest
|
|
credentials:
|
|
username: ${{ secrets.REGISTRY_DOCKER_USER }}
|
|
password: ${{ secrets.REGISTRY_DOCKER_PASS }}
|
|
|
|
|
|
steps:
|
|
- name: Show Information
|
|
run: echo "Runner ${{ runner.os }} triggered by ${{ gitea.event_name }} working on repository ${{ gitea.repository }} and on tag ${{ gitea.ref_name }}"
|
|
|
|
# - 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: 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: Git clone private repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: ${{ gitea.repository }}
|
|
token: ${{ secrets.ACCESS_TOKEN_GIT }}
|
|
|
|
- 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: Output
|
|
run: echo "Push on ${{ vars.REGISTRY_DOCKER }} image ${{ vars.DOCKER_IMAGE_NAME }} tag ${{ gitea.ref_name }}" |