akceptu-submetojn #27026
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: akceptu-submetojn | |
# Tiu ago unue rigardas per voko-afido ĉu novaj redaktoj alvenis (en gist.github.com) | |
# kaj traktas tiujn. Poste ĝi aktualigas la artikolojn en Revo. | |
on: | |
# push: | |
# branches: | |
# - master | |
# la tempo estas laŭ UTC, do laŭ mezeŭropa tempo tio | |
# vintre estas 23:15 kaj somere 00:15 | |
# | |
# * estas speciala signo, do nepre uzu citilojn | |
schedule: | |
- cron: '10 * * * *' | |
#- cron: '10 */2 * * *' | |
#- cron: '10 */3 * * *' | |
# uzu 'access token' kun Git-arĥivo | |
# https://www.innoq.com/de/blog/github-actions-automation/ | |
# https://github.com/ad-m/github-push-action/blob/master/start.sh | |
env: | |
# voko-formiko image tag {latest|stabila|2x} | |
FORMIKO_TAG: 2m | |
AFIDO_TAG: 2m | |
REVO_HOST: ${{ secrets.REVO_HOST }} | |
jobs: | |
revo-redaktoj-gh: | |
runs-on: ubuntu-latest | |
outputs: | |
KONFIRMO_GH: ${{ steps.rigardu_protokolon.outputs.KONFIRMO_GH }} | |
steps: | |
# fix for curl timeout | |
# vd. https://github.com/actions/runner-images/issues/1187#issuecomment-686735760 | |
# https://github.com/termux/termux-packages/pull/6858/commits/a5f6e66eb1971cfc8ec946553d9066be78050b8d | |
- name: Antaŭkontrolo por identigi eblajn problemojn | |
run: | | |
uname -a | |
curl --user ${{ secrets.CGI_USER }}:${{ secrets.CGI_PASSWD }} --max-time 20 -o /dev/null https://${{ env.REVO_HOST }}/cgi-bin/admin/time.pl & sleep 0.1 && ss -t -4 -a -o | |
# exit 1 | |
#fi | |
- name: Kreu dosierujojn por konservi la rezultojn ... | |
run: | | |
mkdir .tmp | |
mkdir .log | |
- name: Saluto al ghcr.io kaj preni 'voko-afido' | |
env: | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
run: | | |
echo "$GITHUB_TOKEN" | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin | |
docker pull "ghcr.io/revuloj/voko-afido/voko-afido:${{ env.AFIDO_TAG }}" | |
- name: Akceptu redaktojn el gists.github.com, kontrolu, arĥivu kaj raportu al redaktantoj | |
run: | | |
docker run -d --name afido \ | |
-e SMTP_SERVER=smtp.strato.de \ | |
-e SMTP_USER=${{ secrets.SMTP_USER }} \ | |
-e SMTP_PASSWORD=${{ secrets.SMTP_PASSWORD }} \ | |
-v $GITHUB_WORKSPACE/.tmp:/home/afido/dict/tmp \ | |
-v $GITHUB_WORKSPACE/.log:/home/afido/dict/log \ | |
ghcr.io/revuloj/voko-afido/voko-afido:${{ env.AFIDO_TAG }} | |
sleep 10 | |
docker exec -u1074 \ | |
-e GIT_REPO_REVO=revo-fonto \ | |
-e REVO_HOST=svagaj.steloj.de \ | |
-e CGI_USER=${{ secrets.CGI_USER }} \ | |
-e CGI_PASSWORD=${{ secrets.CGI_PASSWD_RS }} \ | |
-e GITHUB_TOKEN=${{secrets.GITHUB_TOKEN}} \ | |
-e REVO_TOKEN=${{secrets.REVO_TOKEN}} \ | |
-e SIGELILO=${{secrets.SIGELILO}} \ | |
afido \ | |
afido | |
- name: Rigardu la protokolon | |
id: rigardu_protokolon | |
run: | | |
ls -l .tmp/ .log/ | |
if ls .log/mail_sent* 2>/dev/null 1>&2; then | |
# kontrolu ĉu estas iu konfirmita redakto, rezulto nur estu unulinia, pro tio ni uzas if... | |
echo "KONFIRMO_GH=$(if [[ $(grep -l '\"konfirmo\"' .log/mail_sent*) ]]; then echo "1"; fi)" >> $GITHUB_OUTPUT | |
# cat .log/mail_sent* | |
echo "|rezulto|artikolo|ŝanĝo|" >> $GITHUB_STEP_SUMMARY | |
echo "|-|-|-|" >> $GITHUB_STEP_SUMMARY | |
jq -r '[.[] | ["",.rezulto,.artikolo,.shangho,""]|join("|")| gsub("[$]";"")]|join("\\n")' .log/mail_sent* >> $GITHUB_STEP_SUMMARY | |
fi | |
- name: Konservu protokolojn | |
uses: actions/upload-artifact@v4 | |
with: | |
name: log-gh | |
path: .log | |
- name: Konservu la interrezultojn | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tmp-gh | |
path: .tmp | |
revo-redaktoj-db: | |
runs-on: ubuntu-latest | |
# ne kuru ambaŭ samtempe, por eviti fand-konfliktojn de la git-arĥivo! | |
needs: revo-redaktoj-gh | |
outputs: | |
KONFIRMO_DB: ${{ steps.rigardu_protokolon.outputs.KONFIRMO_DB }} | |
steps: | |
# fix for curl timeout | |
# vd. https://github.com/actions/runner-images/issues/1187#issuecomment-686735760 | |
# https://github.com/termux/termux-packages/pull/6858/commits/a5f6e66eb1971cfc8ec946553d9066be78050b8d | |
- name: Antaŭkontrolo por identigi eblajn problemojn | |
run: | | |
uname -a | |
set +e | |
curl --user ${{ secrets.CGI_USER }}:${{ secrets.CGI_PASSWD }} --max-time 20 https://${{ env.REVO_HOST }}/cgi-bin/admin/time.pl | |
if [ $? == 28 ]; then | |
# printenv | |
# ip -s -h link | |
curl --user ${{ secrets.CGI_USER }}:${{ secrets.CGI_PASSWD }} --max-time 20 https://${{ env.REVO_HOST }}/cgi-bin/admin/time.pl & sleep 1 && ss --info -t4aop dport = :443 | |
# echo "###### log ##########" | |
# ls -l /var/log | |
echo "###### net ##########" | |
# ls /proc/sys/net/ipv4/tcp_tw_* | |
# cat /proc/sys/net/ipv4/tcp_tw_* | |
sudo tail /var/log/syslog | |
ip -s -h link | |
# sudo iptables -L | |
exit 1 | |
fi | |
- name: Kreu dosierujojn por konservi la rezultojn ... | |
run: | | |
uname -a | |
mkdir .tmp | |
mkdir .log | |
- name: Saluto al ghcr.io kaj preni 'voko-afido' | |
env: | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
run: | | |
echo "$GITHUB_TOKEN" | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin | |
docker pull "ghcr.io/revuloj/voko-afido/voko-afido:${{ env.AFIDO_TAG }}" | |
- name: Akceptu redaktojn el submetoj, kontrolu, arĥivu kaj raportu al redaktantoj | |
run: | | |
docker run -d --name afido \ | |
-e SMTP_SERVER=smtp.strato.de \ | |
-e SMTP_USER=${{ secrets.SMTP_USER }} \ | |
-e SMTP_PASSWORD=${{ secrets.SMTP_PASSWORD }} \ | |
-v $GITHUB_WORKSPACE/.tmp:/home/afido/dict/tmp \ | |
-v $GITHUB_WORKSPACE/.log:/home/afido/dict/log \ | |
ghcr.io/revuloj/voko-afido/voko-afido:${{ env.AFIDO_TAG }} | |
sleep 10 | |
docker exec -u1074 \ | |
-e GIT_REPO_REVO=revo-fonto \ | |
-e REVO_HOST=${{ env.REVO_HOST }} \ | |
-e CGI_USER=${{ secrets.CGI_USER }} \ | |
-e CGI_PASSWORD=${{ secrets.CGI_PASSWD }} \ | |
-e GITHUB_TOKEN=${{secrets.GITHUB_TOKEN}} \ | |
-e REVO_TOKEN=${{secrets.REVO_TOKEN}} \ | |
-e SIGELILO=${{secrets.SIGELILO}} \ | |
afido \ | |
afido subm | |
- name: Rigardu la protokolon | |
id: rigardu_protokolon | |
run: | | |
ls -l .tmp/ .log/ | |
if ls .log/mail_sent* 2>/dev/null 1>&2; then | |
# kontrolu ĉu estas iu konfirmita redakto, rezulto nur estu unulinia, pro tio ni uzas if... | |
echo "KONFIRMO_DB=$(if [[ $(grep -l '\"konfirmo\"' .log/mail_sent*) ]]; then echo "1"; fi)" >> $GITHUB_OUTPUT | |
# cat .log/mail_sent* | |
echo "|rezulto|artikolo|ŝanĝo|" >> $GITHUB_STEP_SUMMARY | |
echo "|-|-|-|" >> $GITHUB_STEP_SUMMARY | |
jq -r '[.[] | ["",.rezulto,.artikolo,.shangho,""]|join("|")| gsub("[$]";"")]|join("\\n")' .log/mail_sent* >> $GITHUB_STEP_SUMMARY | |
fi | |
- name: Konservu protokolojn | |
uses: actions/upload-artifact@v4 | |
with: | |
name: log-db | |
path: .log | |
- name: Konservu la interrezultojn | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tmp-db | |
path: .tmp | |
revo-aktualigo: | |
needs: [revo-redaktoj-gh,revo-redaktoj-db] | |
if: ${{needs.revo-redaktoj-gh.outputs.KONFIRMO_GH || needs.revo-redaktoj-db.outputs.KONFIRMO_DB }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Antaŭkontrolo por identigi eblajn problemojn | |
run: | | |
curl --user ${{ secrets.CGI_USER }}:${{ secrets.CGI_PASSWD }} --max-time 20 https://${{ env.REVO_HOST }}/cgi-bin/admin/time.pl | |
- uses: actions/github-script@v7 | |
name: Eltrovu la pozicion de marko 'hora-formiko' | |
id: trovu_horan_formikon | |
with: | |
github-token: ${{secrets.GITHUB_TOKEN}} | |
debug: true | |
script: | | |
const ref = await github.rest.git.getRef({...context.repo, ref: 'tags/hora-formiko'}) | |
const sha = ref.data.object.sha | |
console.log('hora-formiko estas ĉe: '+sha) | |
core.setOutput('sha_hf',sha) | |
- uses: actions/github-script@v7 | |
name: Eltrovu la nunan pozicion (kapo) | |
id: trovu_kapon | |
with: | |
github-token: ${{secrets.GITHUB_TOKEN}} | |
debug: true | |
script: | | |
const ref = await github.rest.git.getRef({...context.repo, ref: 'heads/master'}) | |
const sha = ref.data.object.sha | |
console.log('heads/master estas ĉe: '+sha) | |
core.setOutput('sha_hm',sha) | |
- name: Kreu dosierujojn por konservi la rezultojn ... | |
run: | | |
uname -a | |
mkdir .tgz | |
mkdir .log | |
# https://github.community/t5/GitHub-Actions/Use-docker-images-from-GitHub-Package-Registry/td-p/30407 | |
# https://github.com/actions/starter-workflows/blob/master/ci/docker-push.yml | |
- name: Saluto al ghcr.io kaj preni voko-formiko | |
if: steps.trovu_horan_formikon.outputs.sha_hf != steps.trovu_kapon.outputs.sha_hm | |
env: | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
run: | | |
echo "$GITHUB_TOKEN" | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin | |
docker pull "ghcr.io/revuloj/voko-formiko/voko-formiko:${{ env.FORMIKO_TAG }}" | |
- name: Aktualigu la artikolojn redaktitajn de hora-formiko ĝis HEAD | |
if: steps.trovu_horan_formikon.outputs.sha_hf != steps.trovu_kapon.outputs.sha_hm | |
run: docker run -u1001 | |
-e GIT_REPO_REVO=https://github.com/revuloj/revo-fonto.git | |
-e FTP_USER=${{ secrets.FTP_USER }} | |
-e FTP_PASSWD=${{ secrets.FTP_PASSWD }} | |
-e FTP_SERVER2=314802.webhosting7.1blu.de | |
-e FTP_USER2="${{ secrets.FTP_USER2 }}" | |
-e FTP_PASSWD2="${{ secrets.FTP_PASSWD2 }}" | |
-e CGI_SERVER=${{ env.REVO_HOST }} | |
-e CGI_USER=${{ secrets.CGI_USER }} | |
-e CGI_PASSWD=${{ secrets.CGI_PASSWD }} | |
-e CGI_SERVER2=${{ env.REVO_HOST }} | |
-e CGI_USER2=${{ secrets.CGI_USER }} | |
-e CGI_PASSWD2=${{ secrets.CGI_PASSWD }} | |
-v $GITHUB_WORKSPACE/.tgz:/home/formiko/tgz | |
-v $GITHUB_WORKSPACE/.log:/home/formiko/log | |
ghcr.io/revuloj/voko-formiko/voko-formiko:${{ env.FORMIKO_TAG }} formiko | |
-Dsha1=${{ steps.trovu_horan_formikon.outputs.sha_hf }} | |
-Dsha2=${{ steps.trovu_kapon.outputs.sha_hm }} | |
srv-servo-github-hore | |
- name: Rigardu la rezulton | |
run: | | |
#tar -czf revo.tgz $GITHUB_WORKSPACE/revo | |
ls -l .tgz/ .log/ | |
- name: Konservu rezultintajn arĥivojn | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tgz | |
path: .tgz | |
- name: Konservu protokolojn | |
uses: actions/upload-artifact@v4 | |
with: | |
name: log | |
path: .log | |
- uses: actions/github-script@v7 | |
if: steps.trovu_horan_formikon.outputs.sha_hf != steps.trovu_kapon.outputs.sha_hm | |
name: Movu antaŭen la formikon | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
debug: true | |
script: | | |
var result = {}; | |
try { | |
result = await github.rest.git.updateRef({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
sha: '${{ steps.trovu_kapon.outputs.sha_hm }}', | |
ref: 'tags/hora-formiko', | |
force: true }) | |
} catch(error) { | |
console.log("ERROR:"); | |
} | |
console.log("RESULT...") | |
console.log(result) | |