test / test (push) Failing after 5s
Arbeidsflytene var skrevet for beholderkjørere med ubuntu-latest, actions/checkout@v4 og en hemmelighet ved navn GITEA_TOKEN. Byggeserveren kjører i stedet en vertskjører med merkelappen fish, henter handlinger fra gitea.com og gir et innebygd token, slik de andre prosjektene er satt opp. Slik de var ville de ikke ha kjørt i det hele tatt. - fish som skall, og fish-syntaks i stegene - utløses når en utgivelse publiseres, ikke av tagger - release.yml legger enok-binærfilen ved utgivelsen, slik at prosjektlagre med egne bygningsmodeller kan lage energirapporter uten å ha Rust installert Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
68 lines
2.3 KiB
YAML
68 lines
2.3 KiB
YAML
name: Energirapporter
|
|
|
|
# Lager energirapport for hver bygning i `bygninger/` og legger PDF, JSON og CSV ved
|
|
# utgivelsen. Se `bygninger/LES-MEG.md` for hvilke filtyper som kan ligge der.
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
rapporter:
|
|
runs-on: fish
|
|
defaults:
|
|
run:
|
|
shell: fish {0}
|
|
steps:
|
|
- name: Hent koden
|
|
uses: https://gitea.com/actions/checkout@v6
|
|
|
|
- name: Bygg enok
|
|
run: cargo build --release --locked
|
|
|
|
- name: Importer BIM-filer som ikke har en TOML fra før
|
|
run: |
|
|
for f in (find bygninger -type f \( -iname '*.ifc' -o -iname '*.gbxml' -o -iname '*.csv' \) 2>/dev/null)
|
|
set toml (string replace -r '\.[^.]+$' '.toml' $f)
|
|
if not test -f $toml
|
|
echo "Importerer $f"
|
|
./target/release/enok import $f --ut $toml
|
|
end
|
|
end
|
|
|
|
- name: Beregn og lag rapporter
|
|
run: |
|
|
mkdir -p dist
|
|
set feil 0
|
|
for t in (find bygninger -type f -name '*.toml' 2>/dev/null)
|
|
set navn (basename $t .toml)
|
|
echo "::group::$navn"
|
|
if ./target/release/enok beregn $t --ut ut/$navn
|
|
cp ut/$navn/rapport.pdf dist/$navn-energirapport.pdf
|
|
cp ut/$navn/resultat.json dist/$navn-resultat.json
|
|
cp ut/$navn/maaned.csv dist/$navn-maaned.csv
|
|
gzip -c ut/$navn/timeserie.csv > dist/$navn-timeserie.csv.gz
|
|
else
|
|
echo "Beregningen av $navn feilet"
|
|
set feil 1
|
|
end
|
|
echo "::endgroup::"
|
|
end
|
|
ls -la dist
|
|
exit $feil
|
|
|
|
- name: Legg ved utgivelsen
|
|
if: github.event_name == 'release'
|
|
env:
|
|
TOKEN: ${{ github.token }}
|
|
run: |
|
|
set REL_ID (curl --silent --fail --header "Authorization: token $TOKEN" \
|
|
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/releases/tags/$GITHUB_REF_NAME" | jq -r '.id')
|
|
for f in (find dist -type f)
|
|
echo "Laster opp "(basename $f)
|
|
curl --silent --show-error --fail --header "Authorization: token $TOKEN" \
|
|
--form "attachment=@$f" \
|
|
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/releases/$REL_ID/assets?name="(basename $f)
|
|
end
|