Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
5d7af66514 |
@ -1,74 +0,0 @@
|
||||
name: 'Reusable test job'
|
||||
description: 'Test for images'
|
||||
|
||||
outputs:
|
||||
result:
|
||||
description: "Result of test (success|failure)"
|
||||
value: ${{ jobs.example_job.outputs.output1 }}
|
||||
inputs:
|
||||
image: string
|
||||
branch: string
|
||||
url: string
|
||||
repo: string
|
||||
|
||||
runs:
|
||||
using: 'composite'
|
||||
steps:
|
||||
- name: Update apt
|
||||
uses: https://gitea.basealt.ru/actions/init-alt-env@v1
|
||||
- name: Install requires
|
||||
run: |
|
||||
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah"
|
||||
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah
|
||||
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc"
|
||||
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc
|
||||
- name: Check out current repo
|
||||
uses: https://gitea.com/actions/checkout@v4
|
||||
with:
|
||||
repository: ${{ gitea.server_url }}/${{ inputs.repo }}/gitea-image-forge
|
||||
- name: Get test for image
|
||||
run: |
|
||||
if test -f ${{ gitea.workspace }}/org/$IM/test; then testscript=$(cat ${{ gitea.workspace }}/org/$IM/test); else testscript=""; fi
|
||||
echo "TEST=$testscript" >> ${GITHUB_ENV}
|
||||
echo "test script: $testscript"
|
||||
env:
|
||||
IM: ${{ inputs.image }}
|
||||
BR: ${{ inputs.branch }}
|
||||
- name: Run test
|
||||
id: test-script
|
||||
if: ${{ env.TEST != '' }}
|
||||
continue-on-error: true
|
||||
uses: https://gitea.basealt.ru/actions/podman-run-action@v2
|
||||
with:
|
||||
image: ${{ inputs.url }}/${{ inputs.repo }}/${{ inputs.image }}:${{ inputs.branch }}
|
||||
options: --rm
|
||||
run: ${{ env.TEST }}
|
||||
- name: Run special test
|
||||
id: special-test
|
||||
if: ${{ env.TEST == '' }}
|
||||
continue-on-error: true
|
||||
run: |
|
||||
if [[ IM = 'alt/distroless-true' ]]; then podman run --rm $URL/$REPO/$IM:$BR true; fi
|
||||
if [[ IM = 'alt/distroless-gotop' ]]; then podman run --rm $URL/$REPO/$IM:$BR --version; fi
|
||||
env:
|
||||
IM: ${{ inputs.image }}
|
||||
BR: ${{ inputs.branch }}
|
||||
URL: ${{ inputs.url }}
|
||||
- name: Send notification if test crashed
|
||||
if: ${{ steps.test-script.outcome == 'failure' || steps.special-test.outcome == 'failure' }}
|
||||
run: |
|
||||
issueid=$(curl -X 'GET' "$URL/api/v1/repos/$REPO/gitea-image-forge/issues?state=all&type=issues&page=1&limit=1&token=$T" -H 'accept: application/json' -s | jq '.[].number' -r)
|
||||
body="Building of image $IM for branch $BR is failed"
|
||||
curl -X 'POST' "$URL/api/v1/repos/$REPO/gitea-image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
|
||||
echo "notification about test error is sent to issue $issueid"
|
||||
env:
|
||||
T: ${{ secrets.TOKEN }}
|
||||
URL: ${{ gitea.server_url }}
|
||||
IM: ${{ inputs.image }}
|
||||
BR: ${{ inputs.branch }}
|
||||
REPO: ${{ inputs.repo }}
|
||||
- name: Finish test
|
||||
run: echo "finish test for image $IM on branch $BR"
|
||||
env:
|
||||
IM: ${{ inputs.image }}
|
||||
BR: ${{ inputs.branch }}
|
@ -1,65 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
#$1 - ${{ needs.build-process.outputs.branch }}
|
||||
#$2 - ${{ needs.build-process.outputs.org }}
|
||||
#$3 - ${{ needs.build-process.outputs.url }}
|
||||
#$4 - ${{ needs.build-process.outputs.repo }}
|
||||
#$5 - ${{ gitea.workspace }}
|
||||
|
||||
errors=''
|
||||
haserr=false
|
||||
for IM in $(ls $5/org/$2/ | xargs)
|
||||
do
|
||||
echo "image=$IM"
|
||||
if test -f $5/org/$2/$IM/test
|
||||
then
|
||||
test=$(cat $5/org/$2/$IM/test)
|
||||
else test=''
|
||||
fi
|
||||
|
||||
echo "test script=$test"
|
||||
imgpath="$2/$IM:$1"
|
||||
|
||||
if [[ $2 == 'k8s' ]]
|
||||
then imgpath="$2-$1/$IM:latest"
|
||||
fi
|
||||
|
||||
command="echo empty_command"
|
||||
if [[ $test != '' ]]; then
|
||||
command="podman run --rm --entrypoint=\"/bin/sh\" $3/$4/$imgpath -c \"$test\""
|
||||
else
|
||||
if [[ $IM = 'distroless-true' ]]; then
|
||||
command="podman run --rm $3/$4/$imgpath \"true\""
|
||||
fi
|
||||
if [[ $IM = 'distroless-gotop' ]]; then
|
||||
command="podman run --rm $3/$4/$imgpath \"--version\""
|
||||
fi
|
||||
if [[ $IM = 'flannel-cni-plugin' ]]; then
|
||||
command="podman run --rm $3/$4/$imgpath \"/flannel\""
|
||||
fi
|
||||
if [[ $IM = 'pause' ]]; then
|
||||
command="podman run --rm $3/$4/$imgpath \"/pause\" \"-v\""
|
||||
fi
|
||||
fi
|
||||
echo $command
|
||||
eval $command 2>$IM.log || haserr=true
|
||||
|
||||
echo "podman rmi --all"
|
||||
podman rmi --all
|
||||
|
||||
if [ "$haserr" = true ]
|
||||
then
|
||||
if [[ $(cat $IM.log) != '' ]]
|
||||
then errors="TEST ERROR OF IMAGE $IM: $(cat $IM.log); $errors"
|
||||
else errors="TEST ERROR OF IMAGE $IM: test returned empty error, but exit status was nozero; $errors"
|
||||
fi
|
||||
fi
|
||||
haserr=false
|
||||
done
|
||||
|
||||
echo "$errors"
|
||||
if [[ $errors != '' ]]
|
||||
then haserr=true
|
||||
fi
|
||||
echo "ERR=$haserr" > haserr.log
|
||||
echo $errors > errors.log
|
@ -5,15 +5,15 @@ on:
|
||||
- '*_*/*'
|
||||
|
||||
jobs:
|
||||
build-process:
|
||||
build_process:
|
||||
runs-on: alt-latest
|
||||
outputs:
|
||||
branch: ${{ env.BRANCH }}
|
||||
image: ${{ env.IMAGE }}
|
||||
url: ${{ env.URL }}
|
||||
repo: ${{ env.REPO }}
|
||||
buildres: ${{ steps.build-script.outcome }}
|
||||
test: ${{ env.TEST }}
|
||||
branch: ${{ env.BRANCH }}
|
||||
image: ${{ env.IMAGE }}
|
||||
url: ${{ env.URL }}
|
||||
repo: ${{ env.REPO }}
|
||||
buildres: ${{ steps.build_script.outcome }}
|
||||
test: ${{ env.TEST }}
|
||||
steps:
|
||||
- name: Check workspace
|
||||
run: |
|
||||
@ -25,7 +25,9 @@ jobs:
|
||||
GU: ${{ gitea.server_url }}
|
||||
GR: ${{ gitea.repository }}
|
||||
- name: Update apt
|
||||
uses: https://gitea.basealt.ru/actions/init-alt-env@v1
|
||||
run: |
|
||||
echo "apt-get update -y && apt-get install -y apt rpm"
|
||||
apt-get update -y && apt-get install -y apt rpm
|
||||
- name: Install requires
|
||||
run: |
|
||||
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq"
|
||||
@ -55,13 +57,13 @@ jobs:
|
||||
echo "IMAGE=$localimage"
|
||||
- name: Get test for image
|
||||
run: |
|
||||
if test -f ${{ gitea.workspace }}/org/$IM/test; then testscript=$(cat ${{ gitea.workspace }}/org/$IM/test); else testscript=""; fi
|
||||
echo "TEST=$testscript" >> ${GITHUB_ENV}
|
||||
testscript=$(cat ${{ gitea.workspace }}/org/$IM/test)
|
||||
echo "TEST=$testscript">> ${GITHUB_ENV}
|
||||
env:
|
||||
IM: ${{ env.IMAGE }}
|
||||
BR: ${{ env.BRANCH }}
|
||||
- name: Run building script
|
||||
id: build-script
|
||||
id: build_script
|
||||
run: |
|
||||
echo "build.py -i $IM -b $BR"
|
||||
if [[ $BR == 'sisyphus' ]]; then ${{ gitea.workspace }}/build.py -i $IM -b $BR --skip-arches arm; else ${{ gitea.workspace }}/build.py -i $IM -b $BR; fi
|
||||
@ -69,14 +71,17 @@ jobs:
|
||||
IM: ${{ env.IMAGE }}
|
||||
BR: ${{ env.BRANCH }}
|
||||
continue-on-error: true
|
||||
test-process:
|
||||
needs: build-process
|
||||
test_process:
|
||||
if: ${{ jobs.build_process.env.BUILDRES == 'success' }}
|
||||
needs: build_process
|
||||
runs-on: alt-latest
|
||||
outputs:
|
||||
testres: ${{ steps.test-script.outcome == 'success' || steps.special-test.outcome == 'success' }}
|
||||
testres: ${{ steps.test_script.outcome }}
|
||||
steps:
|
||||
- name: Update apt
|
||||
uses: https://gitea.basealt.ru/actions/init-alt-env@v1
|
||||
run: |
|
||||
echo "apt-get update -y && apt-get install -y apt rpm"
|
||||
apt-get update -y && apt-get install -y apt rpm
|
||||
- name: Install requires
|
||||
run: |
|
||||
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah"
|
||||
@ -84,33 +89,22 @@ jobs:
|
||||
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc"
|
||||
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc
|
||||
- name: Run test
|
||||
id: test-script
|
||||
if: ${{ needs.build-process.outputs.buildres == 'success' && needs.build-process.outputs.test != '' }}
|
||||
id: test_script
|
||||
continue-on-error: true
|
||||
uses: https://gitea.basealt.ru/actions/podman-run-action@v2
|
||||
with:
|
||||
image: ${{ needs.build-process.outputs.url }}/${{ needs.build-process.outputs.repo }}/${{ needs.build-process.outputs.image }}:${{ needs.build-process.outputs.branch }}
|
||||
image: ${{ needs.build_process.outputs.url }}/${{ needs.build_process.outputs.repo }}/${{ needs.build_process.outputs.image }}:${{ needs.build_process.outputs.branch }}
|
||||
options: --rm
|
||||
run: ${{ needs.build_process.outputs.test }}
|
||||
- name: Run special test
|
||||
id: special-test
|
||||
if: ${{ needs.build-process.outputs.buildres == 'success' && needs.build-process.outputs.test == '' }}
|
||||
continue-on-error: true
|
||||
run: |
|
||||
if [[ IM = 'alt/distroless-true' ]]; then podman run --rm $URL/$REPO/$IM:$BR true; fi
|
||||
if [[ IM = 'alt/distroless-gotop' ]]; then podman run --rm $URL/$REPO/$IM:$BR --version; fi
|
||||
env:
|
||||
IM: ${{ needs.build-process.outputs.image }}
|
||||
BR: ${{ needs.build-process.outputs.branch }}
|
||||
URL: ${{ needs.build-process.outputs.url }}
|
||||
REPO: ${{ needs.build-process.outputs.repo }}
|
||||
finish_process:
|
||||
needs: [ build-process, test-process ]
|
||||
needs: [ build_process, test_process ]
|
||||
runs-on: alt-latest
|
||||
steps:
|
||||
- name: Update apt
|
||||
uses: https://gitea.basealt.ru/actions/init-alt-env@v1
|
||||
- name: Install requires
|
||||
run: |
|
||||
echo "apt-get update -y && apt-get install -y apt rpm"
|
||||
apt-get update -y && apt-get install -y apt rpm
|
||||
- name: Update apt
|
||||
run: |
|
||||
echo "apt-get install -y curl jq"
|
||||
apt-get install -y curl jq
|
||||
@ -121,22 +115,22 @@ jobs:
|
||||
echo "tag $BR_$IM is deleted"
|
||||
env:
|
||||
T: ${{ secrets.TOKEN }}
|
||||
URL: ${{ needs.build-process.outputs.url }}
|
||||
REPO: ${{ needs.build-process.outputs.repo }}
|
||||
IM: ${{ needs.build-process.outputs.image }}
|
||||
BR: ${{ needs.build-process.outputs.branch }}
|
||||
URL: ${{ needs.build_process.outputs.url }}
|
||||
REPO: ${{ needs.build_process.outputs.repo }}
|
||||
IM: ${{ needs.build_process.outputs.image}}
|
||||
BR: ${{ needs.build_process.outputs.branch }}
|
||||
EV: ${{ toJson(gitea.event) }}
|
||||
continue-on-error: true
|
||||
- name: Send comment to issue for notification
|
||||
run: |
|
||||
issueid=$(curl -X 'GET' "https://$URL/api/v1/repos/$REPO/gitea-image-forge/issues?state=all&type=issues&page=1&limit=1&token=$T" -H 'accept: application/json' -s | jq '.[].number' -r)
|
||||
if [[ ${{ needs.build-process.outputs.buildres }} = 'success' ]] && [[ ${{ needs.test-process.outputs.testres }} ]]; then body="Building of image $IM for branch $BR finished success"; else body="Testing of image $IM for branch $BR is failed"; fi
|
||||
if [[ ${{ needs.build-process.outputs.buildres }} != 'success' ]]; then body="Building of image $IM for branch $BR is failed"; fi
|
||||
if [[ ${ needs.build_process.outputs.buildres }} = "success" ]] && [[ ${{ needs.test_process.outputs.testres }} = "success" ]]; then body="Building of image $IM for branch $BR finished success"; else body="Testing of image $IM for branch $BR is failed"; fi
|
||||
if [[ ${{ needs.build_process.outputs.buildres }} != 'success' ]]; then body="Building of image $IM for branch $BR is failed"; fi
|
||||
curl -X 'POST' "https://$URL/api/v1/repos/$REPO/gitea-image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
|
||||
echo "notification is sent to issue $issueid"
|
||||
echo "notification is sent"
|
||||
env:
|
||||
T: ${{ secrets.TOKEN }}
|
||||
URL: ${{ needs.build-process.outputs.url }}
|
||||
REPO: ${{ needs.build-process.outputs.repo }}
|
||||
IM: ${{ needs.build-process.outputs.image }}
|
||||
BR: ${{ needs.build-process.outputs.branch }}
|
||||
URL: ${{ needs.build_process.outputs.url }}
|
||||
REPO: ${{ needs.build_process.outputs.repo }}
|
||||
IM: ${{ needs.build_process.outputs.image}}
|
||||
BR: ${{ needs.build_process.outputs.image}}
|
||||
|
@ -1,169 +0,0 @@
|
||||
name: Full building alt images v2
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*#*'
|
||||
|
||||
jobs:
|
||||
build-process:
|
||||
runs-on: alt-p10
|
||||
outputs:
|
||||
branch: ${{ env.BRANCH }}
|
||||
org: ${{ env.ORG }}
|
||||
url: ${{ env.URL }}
|
||||
repo: ${{ env.REPO }}
|
||||
buildres: ${{ steps.build-script.outcome }}
|
||||
steps:
|
||||
- name: Check workspace
|
||||
run: |
|
||||
repourl=$(echo $GU | cut -d '/' -f 3)
|
||||
echo "URL=$repourl" >> ${GITHUB_ENV}
|
||||
echo $repourl
|
||||
reponame=$(echo $GR | cut -d '/' -f 1)
|
||||
echo "REPO=$reponame" >> ${GITHUB_ENV}
|
||||
echo $reponame
|
||||
env:
|
||||
GU: ${{ gitea.server_url }}
|
||||
GR: ${{ gitea.repository }}
|
||||
- name: Update apt
|
||||
uses: https://gitea.basealt.ru/actions/init-alt-env@v1
|
||||
- name: Install requires
|
||||
run: |
|
||||
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl"
|
||||
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl
|
||||
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc"
|
||||
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc
|
||||
- name: Check out current repo
|
||||
uses: https://gitea.com/actions/checkout@v4
|
||||
- name: Parse target branch and tag from events context, save to env
|
||||
env:
|
||||
EV: ${{ toJson(gitea.event) }}
|
||||
run: |
|
||||
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '#' -f 1
|
||||
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '#' -f 1 >> ${GITHUB_ENV}
|
||||
org=$(echo $EV | jq '.ref' -r | sed 's/refs\/tags\///g' | cut -d '#' -f 2)
|
||||
echo "ORG=$org" >> ${GITHUB_ENV}
|
||||
echo "ORG=$org"
|
||||
- name: Login podman gitea
|
||||
run: |
|
||||
echo "podman login ${{ env.URL }}"
|
||||
podman login --username $P_USER --password $P_PASS ${{ env.URL }}
|
||||
env:
|
||||
P_USER: ${{ secrets.PODMAN_USER }}
|
||||
P_PASS: ${{ secrets.PODMAN_PASS }}
|
||||
- name: Run building script
|
||||
id: build-script
|
||||
run: |
|
||||
build_args="-b $BR"
|
||||
if [[ $BR == 'sisyphus' ]]; then build_args="$build_args --skip-arches arm"; fi
|
||||
if [[ $ORG == 'k8s' ]]; then build_args="$build_args --overwrite-organization $ORG-$BR"; fi
|
||||
echo "build.py $build_args"
|
||||
${{ gitea.workspace }}/build.py $build_args -i alt/distroless-true
|
||||
env:
|
||||
ORG: ${{ env.ORG }}
|
||||
BR: ${{ env.BRANCH }}
|
||||
continue-on-error: true
|
||||
- name: Send notification if build crashed
|
||||
if: ${{ steps.build-script.outcome != 'success' }}
|
||||
run: |
|
||||
issueid=$(curl -X 'GET' "$URL/api/v1/repos/$REPO/gitea-image-forge/issues?state=all&type=issues&page=1&limit=1&token=$T" -H 'accept: application/json' -s | jq '.[].number' -r)
|
||||
body="Building images finish with some errors."
|
||||
curl -X 'POST' "$URL/api/v1/repos/$REPO/gitea-image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
|
||||
echo "notification about test error is sent to issue $issueid"
|
||||
env:
|
||||
T: ${{ secrets.TOKEN }}
|
||||
BR: ${{ env.BRANCH }}
|
||||
URL: ${{ gitea.server_url }}
|
||||
REPO: ${{ env.REPO }}
|
||||
- name: Delete event tag
|
||||
run: |
|
||||
tagname=$(echo $EV | jq '.ref' -r | sed "s/refs\/tags\///g")
|
||||
curl -X 'DELETE' "$URL/api/v1/repos/$REPO/gitea-image-forge/tags/$tagname?token=$T" -H 'accept: application/json' -s
|
||||
echo "tag $tagname is deleted"
|
||||
env:
|
||||
T: ${{ secrets.TOKEN }}
|
||||
BR: ${{ env.BRANCH }}
|
||||
URL: ${{ gitea.server_url }}
|
||||
REPO: ${{ env.REPO }}
|
||||
EV: ${{ toJson(gitea.event) }}
|
||||
test-process-alt:
|
||||
needs: build-process
|
||||
if: ${{ needs.build-process.outputs.buildres == 'success' && needs.build-process.outputs.org == 'alt' }}
|
||||
runs-on: alt-p10
|
||||
strategy:
|
||||
max-parallel: 5
|
||||
matrix:
|
||||
images:
|
||||
- apache2
|
||||
- base
|
||||
- buildpack-deps
|
||||
- buildpack-deps-curl
|
||||
- buildpack-deps-scm
|
||||
- devel
|
||||
- distroless-base
|
||||
- distroless-builder
|
||||
- distroless-devel
|
||||
- distroless-gotop
|
||||
- distroless-static
|
||||
- distroless-true
|
||||
- etcd
|
||||
- gitea
|
||||
- nginx
|
||||
- node
|
||||
- prometheus
|
||||
- python
|
||||
- registry
|
||||
- ruby
|
||||
- systemd
|
||||
- unit
|
||||
steps:
|
||||
- name: Update apt
|
||||
uses: ${{ gitea.server_url }}/actions/init-alt-env@v1
|
||||
- name: Install requires
|
||||
run: |
|
||||
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah curl jq"
|
||||
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah curl jq
|
||||
- uses: https://gitea.basealt.ru/actions/image-forge-test@v1
|
||||
continue-on-error: true
|
||||
with:
|
||||
image: ${{ matrix.images }}
|
||||
branch: ${{ needs.build-process.outputs.branch }}
|
||||
org: ${{ needs.build-process.outputs.org }}
|
||||
url: ${{ needs.build-process.outputs.url }}
|
||||
repo: ${{ needs.build-process.outputs.repo }}
|
||||
test-process-k8s:
|
||||
needs: build-process
|
||||
if: ${{ needs.build-process.outputs.buildres == 'success' && needs.build-process.outputs.org == 'k8s' }}
|
||||
runs-on: alt-p10
|
||||
strategy:
|
||||
max-parallel: 5
|
||||
matrix:
|
||||
images:
|
||||
- cert-manager-cainjector
|
||||
- cert-manager-controller
|
||||
- cert-manager-webhook
|
||||
- coredns
|
||||
- etcd
|
||||
- flannel
|
||||
- flannel-cni-plugin
|
||||
- kube-apiserver
|
||||
- kube-controller-manager
|
||||
- kube-proxy
|
||||
- kube-scheduler
|
||||
- pause
|
||||
- trivy-node-collector
|
||||
steps:
|
||||
- name: Update apt
|
||||
uses: ${{ gitea.server_url }}/actions/init-alt-env@v1
|
||||
- name: Install requires
|
||||
run: |
|
||||
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah curl jq"
|
||||
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah curl jq
|
||||
- uses: https://gitea.basealt.ru/actions/image-forge-test@v1
|
||||
continue-on-error: true
|
||||
with:
|
||||
image: ${{ matrix.images }}
|
||||
branch: ${{ needs.build-process.outputs.branch }}
|
||||
org: ${{ needs.build-process.outputs.org }}
|
||||
url: ${{ needs.build-process.outputs.url }}
|
||||
repo: ${{ needs.build-process.outputs.repo }}
|
@ -1,136 +0,0 @@
|
||||
name: Full building alt images
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*10*_*'
|
||||
|
||||
jobs:
|
||||
build-process:
|
||||
runs-on: alt-p10
|
||||
outputs:
|
||||
branch: ${{ env.BRANCH }}
|
||||
org: ${{ env.ORG }}
|
||||
url: ${{ env.URL }}
|
||||
repo: ${{ env.REPO }}
|
||||
buildres: ${{ steps.build-script.outcome }}
|
||||
steps:
|
||||
- name: Check workspace
|
||||
run: |
|
||||
repourl=$(echo $GU | cut -d '/' -f 3)
|
||||
echo "URL=$repourl" >> ${GITHUB_ENV}
|
||||
echo $repourl
|
||||
reponame=$(echo $GR | cut -d '/' -f 1)
|
||||
echo "REPO=$reponame" >> ${GITHUB_ENV}
|
||||
echo $reponame
|
||||
env:
|
||||
GU: ${{ gitea.server_url }}
|
||||
GR: ${{ gitea.repository }}
|
||||
- name: Update apt
|
||||
uses: actions/init-alt-env@v1
|
||||
- name: Install requires
|
||||
run: |
|
||||
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl apt-repo"
|
||||
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl apt-repo
|
||||
#echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc"
|
||||
#apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc
|
||||
echo "apt-repo add 345290 && apt-get update"
|
||||
apt-repo add 345290 && apt-get update
|
||||
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc"
|
||||
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc
|
||||
- name: Check out current repo
|
||||
uses: actions/checkout@v4
|
||||
- name: Parse target branch and tag from events context, save to env
|
||||
env:
|
||||
EV: ${{ toJson(gitea.event) }}
|
||||
run: |
|
||||
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1
|
||||
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1 >> ${GITHUB_ENV}
|
||||
org=$(echo $EV | jq '.ref' -r | sed 's/refs\/tags\///g' | cut -d '_' -f 2)
|
||||
echo "ORG=$org" >> ${GITHUB_ENV}
|
||||
echo "ORG=$org"
|
||||
- name: Login podman gitea
|
||||
run: |
|
||||
echo "podman login ${{ env.URL }}"
|
||||
podman login --username $P_USER --password $P_PASS ${{ env.URL }}
|
||||
env:
|
||||
P_USER: ${{ secrets.PODMAN_USER }}
|
||||
P_PASS: ${{ secrets.PODMAN_PASS }}
|
||||
- name: Run building script
|
||||
id: build-script
|
||||
run: |
|
||||
build_args="-b $BR -o $ORG"
|
||||
#-o $ORG --skip-images alt/distroless-devel
|
||||
if [[ $BR == 'sisyphus' ]]; then build_args="$build_args --skip-arches arm"; fi
|
||||
if [[ $ORG == 'k8s' ]]; then build_args="$build_args --tags tags.toml --overwrite-organization $ORG-$BR"; fi
|
||||
echo "build.py $build_args"
|
||||
${{ gitea.workspace }}/build.py $build_args
|
||||
env:
|
||||
ORG: ${{ env.ORG }}
|
||||
BR: ${{ env.BRANCH }}
|
||||
continue-on-error: true
|
||||
- name: Send notification if build crashed
|
||||
if: ${{ steps.build-script.outcome != 'success' }}
|
||||
run: |
|
||||
issueid=$(curl -X 'GET' "$URL/api/v1/repos/$REPO/gitea-image-forge/issues?state=open&labels=building&type=issues&page=1&limit=1&token=$T" -H 'accept: application/json' -s | jq '.[].number' -r)
|
||||
if [[ $issueid != '' ]]; then \
|
||||
body="Building images finish with some errors."; \
|
||||
curl -X 'POST' "$URL/api/v1/repos/$REPO/gitea-image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s;\
|
||||
echo "notification about test error is sent to issue $issueid"; \
|
||||
else echo "no issue to send notification"; fi
|
||||
env:
|
||||
T: ${{ secrets.TOKEN }}
|
||||
BR: ${{ env.BRANCH }}
|
||||
URL: ${{ gitea.server_url }}
|
||||
REPO: ${{ env.REPO }}
|
||||
- name: Delete event tag
|
||||
run: |
|
||||
tagname=$(echo $EV | jq '.ref' -r | sed "s/refs\/tags\///g")
|
||||
curl -X 'DELETE' "$URL/api/v1/repos/$REPO/gitea-image-forge/tags/$tagname?token=$T" -H 'accept: application/json' -s
|
||||
echo "tag $tagname is deleted"
|
||||
env:
|
||||
T: ${{ secrets.TOKEN }}
|
||||
BR: ${{ env.BRANCH }}
|
||||
URL: ${{ gitea.server_url }}
|
||||
REPO: ${{ env.REPO }}
|
||||
EV: ${{ toJson(gitea.event) }}
|
||||
test-process:
|
||||
needs: build-process
|
||||
if: ${{ needs.build-process.outputs.buildres == 'success' }}
|
||||
runs-on: alt-p10
|
||||
steps:
|
||||
- name: Update apt
|
||||
uses: actions/init-alt-env@v1
|
||||
- name: Install requires
|
||||
run: |
|
||||
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl"
|
||||
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl
|
||||
- name: Check out current repo
|
||||
uses: https://gitea.com/actions/checkout@v4
|
||||
- name: Test
|
||||
id: test-script
|
||||
continue-on-error: true
|
||||
run: |
|
||||
$WS/.gitea/workflows/testscript $BR $ORG $URL $REPO $WS
|
||||
cat haserr.log >> ${GITHUB_ENV}
|
||||
echo "test process finished"
|
||||
env:
|
||||
BR: ${{ needs.build-process.outputs.branch }}
|
||||
ORG: ${{ needs.build-process.outputs.org }}
|
||||
URL: ${{ needs.build-process.outputs.url }}
|
||||
REPO: ${{ needs.build-process.outputs.repo }}
|
||||
WS: ${{ gitea.workspace }}
|
||||
- name: Send notification if test crashed
|
||||
if: ${{ env.ERR == 'true' || steps.test-script.outcome == 'failure' }}
|
||||
run: |
|
||||
issueid=$(curl -X 'GET' "$URL/api/v1/repos/$REPO/gitea-image-forge/issues?state=open&labels=building&type=issues&page=1&limit=1&token=$T" -H 'accept: application/json' -s | jq '.[].number' -r)
|
||||
if [[ $issueid != '' ]]; then \
|
||||
errors=$(cat errors.log); \
|
||||
body="Testing images finish with some errors. $errors"; \
|
||||
curl -X 'POST' "$URL/api/v1/repos/$REPO/gitea-image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s; \
|
||||
echo "notification about test error is sent to issue $issueid"; \
|
||||
else echo "no issue to send notification"; fi
|
||||
env:
|
||||
T: ${{ secrets.TOKEN }}
|
||||
BR: ${{ needs.build-process.outputs.branch }}
|
||||
URL: ${{ gitea.server_url }}
|
||||
REPO: ${{ needs.build-process.outputs.repo }}
|
@ -1,132 +0,0 @@
|
||||
name: Full building alt images
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'sisyphus_*'
|
||||
|
||||
jobs:
|
||||
build-process:
|
||||
runs-on: alt-sisyphus
|
||||
outputs:
|
||||
branch: ${{ env.BRANCH }}
|
||||
org: ${{ env.ORG }}
|
||||
url: ${{ env.URL }}
|
||||
repo: ${{ env.REPO }}
|
||||
buildres: ${{ steps.build-script.outcome }}
|
||||
steps:
|
||||
- name: Check workspace
|
||||
run: |
|
||||
repourl=$(echo $GU | cut -d '/' -f 3)
|
||||
echo "URL=$repourl" >> ${GITHUB_ENV}
|
||||
echo $repourl
|
||||
reponame=$(echo $GR | cut -d '/' -f 1)
|
||||
echo "REPO=$reponame" >> ${GITHUB_ENV}
|
||||
echo $reponame
|
||||
env:
|
||||
GU: ${{ gitea.server_url }}
|
||||
GR: ${{ gitea.repository }}
|
||||
- name: Update apt
|
||||
uses: actions/init-alt-env@v1
|
||||
- name: Install requires
|
||||
run: |
|
||||
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl"
|
||||
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl
|
||||
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc"
|
||||
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc
|
||||
- name: Check out current repo
|
||||
uses: actions/checkout@v4
|
||||
- name: Parse target branch and tag from events context, save to env
|
||||
env:
|
||||
EV: ${{ toJson(gitea.event) }}
|
||||
run: |
|
||||
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1
|
||||
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1 >> ${GITHUB_ENV}
|
||||
org=$(echo $EV | jq '.ref' -r | sed 's/refs\/tags\///g' | cut -d '_' -f 2)
|
||||
echo "ORG=$org" >> ${GITHUB_ENV}
|
||||
echo "ORG=$org"
|
||||
- name: Login podman gitea
|
||||
run: |
|
||||
echo "podman login ${{ env.URL }}"
|
||||
podman login --username $P_USER --password $P_PASS ${{ env.URL }}
|
||||
env:
|
||||
P_USER: ${{ secrets.PODMAN_USER }}
|
||||
P_PASS: ${{ secrets.PODMAN_PASS }}
|
||||
- name: Run building script
|
||||
id: build-script
|
||||
run: |
|
||||
build_args="-b $BR -o $ORG"
|
||||
#-o $ORG --skip-images alt/distroless-devel
|
||||
if [[ $BR == 'sisyphus' ]]; then build_args="$build_args --skip-arches arm"; fi
|
||||
if [[ $ORG == 'k8s' ]]; then build_args="$build_args --tags tags.toml --overwrite-organization $ORG-$BR --skip-images k8s/kube-apiserver k8s/kube-controller-manager k8s/kube-proxy k8s/kube-scheduler"; fi
|
||||
echo "build.py $build_args"
|
||||
${{ gitea.workspace }}/build.py $build_args
|
||||
env:
|
||||
ORG: ${{ env.ORG }}
|
||||
BR: ${{ env.BRANCH }}
|
||||
continue-on-error: true
|
||||
- name: Send notification if build crashed
|
||||
if: ${{ steps.build-script.outcome != 'success' }}
|
||||
run: |
|
||||
issueid=$(curl -X 'GET' "$URL/api/v1/repos/$REPO/gitea-image-forge/issues?state=open&labels=building&type=issues&page=1&limit=1&token=$T" -H 'accept: application/json' -s | jq '.[].number' -r)
|
||||
if [[ $issueid != '' ]]; then \
|
||||
body="Building images finish with some errors."; \
|
||||
curl -X 'POST' "$URL/api/v1/repos/$REPO/gitea-image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s;\
|
||||
echo "notification about test error is sent to issue $issueid"; \
|
||||
else echo "no issue to send notification"; fi
|
||||
env:
|
||||
T: ${{ secrets.TOKEN }}
|
||||
BR: ${{ env.BRANCH }}
|
||||
URL: ${{ gitea.server_url }}
|
||||
REPO: ${{ env.REPO }}
|
||||
- name: Delete event tag
|
||||
run: |
|
||||
tagname=$(echo $EV | jq '.ref' -r | sed "s/refs\/tags\///g")
|
||||
curl -X 'DELETE' "$URL/api/v1/repos/$REPO/gitea-image-forge/tags/$tagname?token=$T" -H 'accept: application/json' -s
|
||||
echo "tag $tagname is deleted"
|
||||
env:
|
||||
T: ${{ secrets.TOKEN }}
|
||||
BR: ${{ env.BRANCH }}
|
||||
URL: ${{ gitea.server_url }}
|
||||
REPO: ${{ env.REPO }}
|
||||
EV: ${{ toJson(gitea.event) }}
|
||||
test-process:
|
||||
needs: build-process
|
||||
if: ${{ needs.build-process.outputs.buildres == 'success' }}
|
||||
runs-on: alt-sisyphus
|
||||
steps:
|
||||
- name: Update apt
|
||||
uses: actions/init-alt-env@v1
|
||||
- name: Install requires
|
||||
run: |
|
||||
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl"
|
||||
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl
|
||||
- name: Check out current repo
|
||||
uses: https://gitea.com/actions/checkout@v4
|
||||
- name: Test
|
||||
id: test-script
|
||||
continue-on-error: true
|
||||
run: |
|
||||
$WS/.gitea/workflows/testscript $BR $ORG $URL $REPO $WS
|
||||
cat haserr.log >> ${GITHUB_ENV}
|
||||
echo "test process finished"
|
||||
env:
|
||||
BR: ${{ needs.build-process.outputs.branch }}
|
||||
ORG: ${{ needs.build-process.outputs.org }}
|
||||
URL: ${{ needs.build-process.outputs.url }}
|
||||
REPO: ${{ needs.build-process.outputs.repo }}
|
||||
WS: ${{ gitea.workspace }}
|
||||
- name: Send notification if test crashed
|
||||
if: ${{ env.ERR == 'true' || steps.test-script.outcome == 'failure' }}
|
||||
run: |
|
||||
issueid=$(curl -X 'GET' "$URL/api/v1/repos/$REPO/gitea-image-forge/issues?state=open&labels=building&type=issues&page=1&limit=1&token=$T" -H 'accept: application/json' -s | jq '.[].number' -r)
|
||||
if [[ $issueid != '' ]]; then \
|
||||
errors=$(cat errors.log); \
|
||||
body="Testing images finish with some errors. $errors"; \
|
||||
curl -X 'POST' "$URL/api/v1/repos/$REPO/gitea-image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s; \
|
||||
echo "notification about test error is sent to issue $issueid"; \
|
||||
else echo "no issue to send notification"; fi
|
||||
env:
|
||||
T: ${{ secrets.TOKEN }}
|
||||
BR: ${{ needs.build-process.outputs.branch }}
|
||||
URL: ${{ gitea.server_url }}
|
||||
REPO: ${{ needs.build-process.outputs.repo }}
|
@ -1,21 +1,23 @@
|
||||
name: Test job
|
||||
name: Test_wf
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'test*'
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
test-job:
|
||||
Test-job:
|
||||
runs-on: alt-latest
|
||||
env:
|
||||
TEST: "gitea --version"
|
||||
steps:
|
||||
- name: Parse target branch
|
||||
run: |
|
||||
echo $EV
|
||||
echo $RE
|
||||
echo $RE2
|
||||
echo $BR
|
||||
env:
|
||||
EV: ${{ toJson(gitea.event) }}
|
||||
RE: ${{ github.ref_name }}
|
||||
RE2: ${{ github.ref }}
|
||||
BR: ${{ github.head_ref }}
|
||||
- name: Update apt
|
||||
run: apt-get update -y && apt-get install -y apt rpm
|
||||
- name: Install reqs
|
||||
run: apt-get install -y podman buildah
|
||||
- name: Podman run
|
||||
uses: https://gitea.basealt.ru/actions/podman-run-action@v2
|
||||
with:
|
||||
image: gitea.basealt.ru/images_repo/alt/gitea
|
||||
options: --rm
|
||||
run: ${{ env.TEST }}
|
||||
- run: echo "This job's status is ${{ job.status }}"
|
||||
|
@ -32,3 +32,5 @@ On x86_64 machine using p10 branch you need:
|
||||
- `qemu-user-static-binfmt-aarch64` to build for arm64 architecture
|
||||
- `qemu-user-static-binfmt-arm` to build for arm architecture
|
||||
- `qemu-user-static-binfmt-ppc` to build for ppc64le architecture
|
||||
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
LC_ALL=ru_RU.UTF-8 TZ=/usr/share/zoneinfo/Europe/Moscow date| grep MSK
|
@ -1 +0,0 @@
|
||||
curl --version;gpg --version
|
@ -1 +0,0 @@
|
||||
git --version;hg --version
|
@ -1 +0,0 @@
|
||||
gcc --version;make --version
|
@ -1 +0,0 @@
|
||||
man --version;ip -V;vim --version | grep vim
|
@ -1 +0,0 @@
|
||||
apt-repo --version
|
@ -1 +0,0 @@
|
||||
ss -V
|
@ -1 +0,0 @@
|
||||
etcdctl version
|
@ -1 +0,0 @@
|
||||
nginx -v
|
@ -1 +0,0 @@
|
||||
node -v
|
@ -1 +0,0 @@
|
||||
prometheus --version
|
@ -1 +1 @@
|
||||
python3 --version
|
||||
python3 --help
|
||||
|
@ -1 +0,0 @@
|
||||
registry --version
|
@ -1 +0,0 @@
|
||||
ruby --version
|
@ -1 +0,0 @@
|
||||
ls -la /sbin/init | grep systemd
|
@ -1 +0,0 @@
|
||||
unitd --version
|
@ -1 +0,0 @@
|
||||
cainjector --help
|
@ -1 +0,0 @@
|
||||
controller --help
|
@ -1 +0,0 @@
|
||||
webhook --help
|
@ -1 +0,0 @@
|
||||
coredns --version
|
@ -1 +0,0 @@
|
||||
etcd --version
|
@ -1 +0,0 @@
|
||||
flanneld --version
|
@ -1 +0,0 @@
|
||||
kube-apiserver --version
|
@ -1 +0,0 @@
|
||||
kube-controller-manager --version
|
@ -1 +0,0 @@
|
||||
kube-proxy --version
|
@ -1 +0,0 @@
|
||||
kube-scheduler --version
|
@ -1 +0,0 @@
|
||||
node-collector --help
|
Reference in New Issue
Block a user