Compare commits

..

35 Commits

Author SHA1 Message Date
b1b247eae2 [toto] 2025-05-13 22:17:28 +02:00
9c702d6a93 [toto] 2025-05-13 22:17:09 +02:00
12d1e41abe [toto] 2025-05-13 22:12:06 +02:00
dae201ee41 [add env vars ] 2025-05-13 21:58:44 +02:00
a90cbd05e8 change user 2025-05-13 20:41:20 +02:00
c5bc159fe7 [spiderfoot] 2025-01-09 21:50:31 +01:00
148c0c82b7 [add spiderfoot] 2025-01-09 21:46:45 +01:00
8ab62bd7ab [Add poker CI/CD] 2024-11-24 19:32:08 +01:00
2afdb334af [Add poker CI/CD] 2024-11-24 19:27:18 +01:00
d12a215dce [Add poker CI/CD] 2024-11-24 19:09:37 +01:00
0d012c133d [Add poker CI/CD] 2024-11-24 18:47:27 +01:00
af818f3b42 [Add poker CI/CD] 2024-11-24 18:47:13 +01:00
071293ea06 [finito] 2024-11-23 22:52:04 +01:00
f4c7131cc6 [puta ca va marcher] 2024-11-23 22:47:20 +01:00
42e1a9b824 [hola] 2024-11-23 22:45:50 +01:00
d040748efc [hola] 2024-11-23 22:43:50 +01:00
74c06b64b9 [...] 2024-11-23 22:42:48 +01:00
4a5e991c2e [...] 2024-11-23 22:41:46 +01:00
d2e101199b [fck] 2024-11-23 22:41:30 +01:00
6faf71e921 [fo ahead] 2024-11-23 22:39:36 +01:00
a02e13bd10 [last one motherfucker] 2024-11-23 22:37:56 +01:00
667102a66f [debilos * 2] 2024-11-23 22:28:16 +01:00
37e069f32d [debilos] 2024-11-23 22:27:25 +01:00
6436e5bb7e [debilos] 2024-11-23 22:25:12 +01:00
5af82cad53 [test helm] 2024-11-23 22:22:55 +01:00
7027cc7b99 [test helm] 2024-11-23 22:20:54 +01:00
42305deba4 [test helm] 2024-11-23 22:20:12 +01:00
6e48d8aacc [test helm] 2024-11-23 22:18:12 +01:00
a46dec16e4 [test helm] 2024-11-23 22:15:55 +01:00
f32d6ed552 [test helm] 2024-11-23 21:34:31 +01:00
63f05ad07b [Lets go again] 2024-11-23 21:28:07 +01:00
d8ceb8617a [Public OK ] 2024-11-23 21:20:48 +01:00
19419f081c [tryhard always and fore ever] 2024-11-23 21:17:08 +01:00
c7f95eac1a [tryhard always and fore ever] 2024-11-23 20:14:05 +01:00
e35903c81d [tryhard always and fore ever] 2024-11-23 20:12:08 +01:00
7 changed files with 187 additions and 86 deletions

View File

@@ -1,16 +1,16 @@
name: ci/cd to build and push docker image debian_runner 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
name: ci/cd helm chart
on:
push:
tags:
# Be carefull, conflict with package-deb *.*.*, don't use more than on dot *.* (ex: 2.5-runner)
- '*-chart'
env:
GIT_REPO: testchart
jobs:
build-and-push-internal:
push-helm-chart:
#! see on runner /data/.runner to add label (test => test:docker://debian:bullseye)
runs-on: ubuntu-runner
container:
@@ -20,36 +20,15 @@ jobs:
steps:
- name: Show Information
run: echo "Runner ${{ runner.os }} working on repository ${{ gitea.repository }} and on tag ${{ gitea.ref_name }}"
- name: clone & package
- name: clone repo helm chart
run: git clone https://${{ secrets.PACKAGE_RW }}@${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.GIT_REPO }}
- name: tag release
run: |
git clone https://${{ secrets.REGISTRY_DOCKER_PASS }}@${{ vars.REGISTRY_DOCKER }}/${{ secrets.REGISTRY_DOCKER_USER }}/${{ vars.DOCKER_IMAGE_NAME }}
helm package ${{ vars.DOCKER_IMAGE_NAME }}
# - name: Git clone private repository
# uses: actions/checkout@v4
# with:
# repository: ${{ gitea.repository }}
# token: ${{ secrets.REPO_PULL_GITEA }}
# - 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 }}
# - run: git --help
# - 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 "Runner push on ${{ vars.REGISTRY_DOCKER }} image ${{ vars.DOCKER_IMAGE_NAME }} tag ${{ gitea.ref_name }}"
export VERSION=$(echo "${{ gitea.ref_name }}" | cut -d '-' -f 1)
sed -i "s/^version: .*/version: $VERSION/" /workspace/${{ secrets.GIT_USER_REPO }}/gitea-runner/${{ env.GIT_REPO }}/Chart.yaml
- name: helm package
run: helm package ${{ env.GIT_REPO }}
- name: push repo
run: |
export VERSION=$(echo "${{ gitea.ref_name }}" | cut -d '-' -f 1)
curl --user ${{ secrets.GIT_USER_REPO }}:${{ secrets.PACKAGE_RW }} -X POST --upload-file /workspace/${{ secrets.GIT_USER_REPO }}/gitea-runner/${{ env.GIT_REPO }}-$VERSION.tgz https://${{ vars.REGISTRY_DOCKER }}/api/packages/${{ secrets.GIT_USER_REPO }}/helm/api/charts

View File

@@ -1,12 +1,8 @@
name: ci/cd to build and push docker image debian_runner 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
name: ci/cd internal docker image
on:
push:
tags:
# Be carefull, conflict with package-deb *.*.*, don't use more than on dot *.* (ex: 2.5-runner)
- '*-internal'
@@ -27,7 +23,7 @@ jobs:
# container:
# image: ${{ vars.REGISTRY_DOCKER }}/${{ vars.DOCKER_IMAGE_RUNNER }}:latest
# credentials:
# username: ${{ secrets.REGISTRY_DOCKER_USER }}
# username: ${{ secrets.GIT_USER_REPO }}
# password: ${{ secrets.REGISTRY_DOCKER_PASS }}
@@ -36,20 +32,18 @@ jobs:
run: echo "Runner ${{ runner.os }} working on repository ${{ gitea.repository }} and on tag ${{ gitea.ref_name }}"
- name: clone & build
run: |
git clone https://${{ secrets.REGISTRY_DOCKER_PASS }}@${{ vars.REGISTRY_DOCKER }}/${{ secrets.REGISTRY_DOCKER_USER }}/${{ env.GIT_REPO }}
git clone https://${{ secrets.REGISTRY_DOCKER_PASS }}@${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.GIT_REPO }}
cd ${{ env.GIT_REPO }}
docker buildx b . -t ${{ env.DOCKER_IMAGE_NAME }}
- name: login & push
run: |
echo "${{ secrets.REGISTRY_DOCKER_PASS }}" | docker login -u ${{ secrets.REGISTRY_DOCKER_USER }} --password-stdin ${{ vars.REGISTRY_DOCKER }}
echo "${{ secrets.PACKAGE_RW }}" | docker login -u ${{ secrets.GIT_USER_REPO }} --password-stdin ${{ vars.REGISTRY_DOCKER }}
export VERSION=$(echo "${{ gitea.ref_name }}" | cut -d '-' -f 1)
docker tag ${{ env.DOCKER_IMAGE_NAME }} ${{ vars.REGISTRY_DOCKER }}/${{ secrets.REGISTRY_DOCKER_USER }}/${{ env.DOCKER_IMAGE_NAME }}:$VERSION
docker tag ${{ env.DOCKER_IMAGE_NAME }} ${{ vars.REGISTRY_DOCKER }}/${{ secrets.REGISTRY_DOCKER_USER }}/${{ env.DOCKER_IMAGE_NAME }}:latest
docker images
echo "${{ vars.REGISTRY_DOCKER }}/${{ secrets.REGISTRY_DOCKER_USER }}/${{ env.DOCKER_IMAGE_NAME }}:$VERSION"
sleep 300
docker push ${{ vars.REGISTRY_DOCKER }}/${{ secrets.REGISTRY_DOCKER_USER }}/${{ env.DOCKER_IMAGE_NAME }}:$VERSION
docker push ${{ vars.REGISTRY_DOCKER }}/${{ secrets.REGISTRY_DOCKER_USER }}/${{ env.DOCKER_IMAGE_NAME }}:latest
docker tag ${{ env.DOCKER_IMAGE_NAME }} ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:$VERSION
docker tag ${{ env.DOCKER_IMAGE_NAME }} ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:latest
echo "docker push ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:$VERSION"
docker push ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:$VERSION
docker push ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:latest
# docker pull gitea.jingoh.fr/staffadmin/test:0.0.1
# docker tag gitea.jingoh.fr/staffadmin/test:0.0.1 gitea.jingoh.fr/staffadmin/toto:latest
@@ -66,7 +60,7 @@ jobs:
# uses: docker/login-action@v3
# with:
# registry: ${{ vars.REGISTRY_DOCKER }}
# username: ${{ secrets.REGISTRY_DOCKER_USER }}
# username: ${{ secrets.GIT_USER_REPO }}
# password: ${{ secrets.REGISTRY_DOCKER_PASS }}

View File

@@ -0,0 +1,81 @@
name: ci/cd internal docker image
on:
push:
tags:
- '*-poker'
env:
GIT_REPO: poker-master-tool
DOCKER_IMAGE_NAME: poker
jobs:
build-and-push-poker:
#! 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: ubuntu-runner
container:
image: docker
# container:
# image: ${{ vars.REGISTRY_DOCKER }}/${{ vars.DOCKER_IMAGE_RUNNER }}:latest
# credentials:
# username: ${{ vars.GIT_USER_REPO }}
# password: ${{ secrets.PACKAGE_RW }}
steps:
- name: Show Information
run: echo "Runner ${{ runner.os }} working on repository ${{ gitea.repository }} and on tag ${{ gitea.ref_name }}"
- name: clone & build
run: |
git clone https://${{ secrets.PACKAGE_RW }}:${{ vars.GIT_USER_REPO }}@${{ vars.REGISTRY_DOCKER }}/${{ vars.GIT_USER_REPO }}/${{ env.GIT_REPO }}.git
cd ${{ env.GIT_REPO }}
pwd
echo "sed -i "s/^FROM .*/FROM node:18/" /workspace/${{ vars.GIT_USER_REPO }}/gitea-runner/${{ env.GIT_REPO }}/Dockerfile"
sed -i "s/^FROM .*/FROM node:18/" /workspace/${{ vars.GIT_USER_REPO }}/gitea-runner/${{ env.GIT_REPO }}/Dockerfile
cat /workspace/${{ vars.GIT_USER_REPO }}/gitea-runner/${{ env.GIT_REPO }}/Dockerfile
docker buildx b . -t ${{ env.DOCKER_IMAGE_NAME }}
- name: login & push
run: |
echo "${{ secrets.PACKAGE_RW }}" | docker login -u ${{ vars.GIT_USER_REPO }} --password-stdin ${{ vars.REGISTRY_DOCKER }}
export VERSION=$(echo "${{ gitea.ref_name }}" | cut -d '-' -f 1)
docker tag ${{ env.DOCKER_IMAGE_NAME }} ${{ vars.REGISTRY_DOCKER }}/${{ vars.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:$VERSION
docker tag ${{ env.DOCKER_IMAGE_NAME }} ${{ vars.REGISTRY_DOCKER }}/${{ vars.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:latest
echo "docker push ${{ vars.REGISTRY_DOCKER }}/${{ vars.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:$VERSION"
docker push ${{ vars.REGISTRY_DOCKER }}/${{ vars.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:$VERSION
docker push ${{ vars.REGISTRY_DOCKER }}/${{ vars.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:latest
# docker pull gitea.jingoh.fr/staffadmin/test:0.0.1
# docker tag gitea.jingoh.fr/staffadmin/test:0.0.1 gitea.jingoh.fr/staffadmin/toto:latest
# docker push gitea.jingoh.fr/staffadmin/toto:latest
# - name: Git clone private repository
# uses: actions/checkout@v4
# with:
# repository: ${{ gitea.repository }}
# token: ${{ secrets.REPO_PULL_GITEA }}
# - name: Login to docker private registry
# uses: docker/login-action@v3
# with:
# registry: ${{ vars.REGISTRY_DOCKER }}
# username: ${{ vars.GIT_USER_REPO }}
# password: ${{ secrets.PACKAGE_RW }}
# - run: git --help
# - name: Build and push image in registry
# uses: docker/build-push-action@v5
# with:
# context: .
# push: true
# tags: ${{ vars.REGISTRY_DOCKER }}/${{ env.DOCKER_IMAGE_NAME }}:latest,${{ vars.REGISTRY_DOCKER }}/${{ env.DOCKER_IMAGE_NAME }}:${{ gitea.ref_name }}
# - name: Output
# run: echo "Runner push on ${{ vars.REGISTRY_DOCKER }} image ${{ env.DOCKER_IMAGE_NAME }} tag ${{ gitea.ref_name }}"

View File

@@ -0,0 +1,47 @@
name: ci/cd internal docker image
on:
push:
tags:
- '*-spiderfoot'
env:
GIT_REPO: spiderfoot
DOCKER_IMAGE_NAME: spiderfoot
jobs:
build-and-push-spiderfoot:
#! 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: ubuntu-runner
container:
image: docker
# container:
# image: ${{ vars.REGISTRY_DOCKER }}/${{ vars.DOCKER_IMAGE_RUNNER }}:latest
# credentials:
# username: ${{ secrets.GIT_USER_REPO }}
# password: ${{ secrets.PACKAGE_RW }}
steps:
- name: Show Information
run: echo "Runner ${{ runner.os }} working on repository ${{ gitea.repository }} and on tag ${{ gitea.ref_name }}"
- name: clone & build
run: |
git clone https://${{ secrets.PACKAGE_RW }}@${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.GIT_REPO }}
cd ${{ env.GIT_REPO }}
cat /workspace/${{ secrets.GIT_USER_REPO }}/gitea-runner/${{ env.GIT_REPO }}/Dockerfile
docker buildx b . -t ${{ env.DOCKER_IMAGE_NAME }}
- name: login & push
run: |
echo "${{ secrets.PACKAGE_RW }}" | docker login -u ${{ secrets.GIT_USER_REPO }} --password-stdin ${{ vars.REGISTRY_DOCKER }}
export VERSION=$(echo "${{ gitea.ref_name }}" | cut -d '-' -f 1)
docker tag ${{ env.DOCKER_IMAGE_NAME }} ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:$VERSION
docker tag ${{ env.DOCKER_IMAGE_NAME }} ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:latest
echo "docker push ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:$VERSION"
docker push ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:$VERSION
docker push ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.DOCKER_IMAGE_NAME }}:latest

View File

@@ -1,4 +1,4 @@
name: build_package_deb
name: build and push deb package
env:
PACKAGE_NAME: test3
@@ -47,9 +47,9 @@ jobs:
- name: Push packages
run: |
curl --user ${{ secrets.REGISTRY_DOCKER_USER }}:${{ secrets.PACKAGE_PUSH_REPO }} \
curl --user ${{ secrets.GIT_USER_REPO }}:${{ secrets.PACKAGE_RW }} \
--upload-file ${{ env.PACKAGE_NAME }}_${{ gitea.ref_name }}_${{ env.ARCH }}.deb \
https://${{ env.GIT_REPO_URL }}/api/packages/${{ secrets.REGISTRY_DOCKER_USER }}/debian/pool/${{ env.DEB_OS_TARGET }}/main/upload
https://${{ env.GIT_REPO_URL }}/api/packages/${{ secrets.GIT_USER_REPO }}/debian/pool/${{ env.DEB_OS_TARGET }}/main/upload
- name: Output
run: echo "Runner push on ${{ env.GIT_REPO_URL }} with user ${{ secrets.REGISTRY_DOCKER_USER }} package ${{ env.PACKAGE_NAME }} os ${{ env.DEB_OS_TARGET }} tag ${{ gitea.ref_name }}"
run: echo "Runner push on ${{ env.GIT_REPO_URL }} with user ${{ secrets.GIT_USER_REPO }} package ${{ env.PACKAGE_NAME }} os ${{ env.DEB_OS_TARGET }} tag ${{ gitea.ref_name }}"

View File

@@ -1,4 +1,4 @@
name: ci/cd to build and push docker image wafwoof in private registry
name: ci/cd public docker
on:
push:
@@ -32,12 +32,12 @@ jobs:
docker buildx b . -t ${{ env.GIT_REPO }}
- name: login & push
run: |
echo "${{ secrets.REGISTRY_DOCKER_PASS }}" | docker login -u ${{ secrets.REGISTRY_DOCKER_USER }} --password-stdin ${{ vars.REGISTRY_DOCKER }}
echo "${{ secrets.PACKAGE_RW }}" | docker login -u ${{ secrets.GIT_USER_REPO }} --password-stdin ${{ vars.REGISTRY_DOCKER }}
export VERSION=$(echo "${{ gitea.ref_name }}" | cut -d '-' -f 1)
docker tag ${{ env.GIT_REPO }} ${{ vars.REGISTRY_DOCKER }}/${{ vars.GIT_USER_REPO }}/${{ env.GIT_REPO }}:$VERSION
docker tag ${{ env.GIT_REPO }} ${{ vars.REGISTRY_DOCKER }}/${{ vars.GIT_USER_REPO }}/${{ env.GIT_REPO }}:latest
docker push ${{ vars.REGISTRY_DOCKER }}/${{ vars.GIT_USER_REPO }}/${{ env.GIT_REPO }}:$VERSION
docker push ${{ vars.REGISTRY_DOCKER }}/${{ vars.GIT_USER_REPO }}/${{ env.GIT_REPO }}:latest
docker tag ${{ env.GIT_REPO }} ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.GIT_REPO }}:$VERSION
docker tag ${{ env.GIT_REPO }} ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.GIT_REPO }}:latest
docker push ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.GIT_REPO }}:$VERSION
docker push ${{ vars.REGISTRY_DOCKER }}/${{ secrets.GIT_USER_REPO }}/${{ env.GIT_REPO }}:latest
- name: Output
run: echo "Runner push on ${{ vars.REGISTRY_DOCKER }} image ${{ env.GIT_REPO }} tag ${{ gitea.ref_name }}"

View File

@@ -4,27 +4,27 @@ FROM debian:bullseye
ENV NODE_MAJOR 16
# install dependancies packages
RUN apt-get update \
&& apt-get install -y curl \
dnsutils \
git \
ca-certificates \
gnupg
# # install dependancies packages
# RUN apt-get update \
# && apt-get install -y curl \
# dnsutils \
# git \
# ca-certificates \
# gnupg
# NODE
RUN install -m 0755 -d /etc/apt/keyrings
RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
RUN 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
# # NODE
# RUN install -m 0755 -d /etc/apt/keyrings
# RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
# RUN 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
# DOCKER
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
RUN chmod a+r /etc/apt/keyrings/docker.gpg
RUN 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
# # DOCKER
# RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# RUN chmod a+r /etc/apt/keyrings/docker.gpg
# RUN 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
RUN apt-get update \
&& apt-get install -y nodejs \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin
# RUN apt-get update \
# && apt-get install -y nodejs \
# docker-ce \
# docker-ce-cli \
# containerd.io \
# docker-buildx-plugin