Files
enok/.gitea/workflows/rapport.yml
T
blandClaude Opus 5 0404252fa0
test / test (push) Successful in 2m2s
Sett opp Rust-verktøykjeden i byggeserveren, og fiks nedlastingsstien
Kjørebrukeren gitea-runner har rustup installert, men ingen standardkjede satt.
Cargo svarte derfor at den ikke visste hvilken versjon den skulle bruke, og alle
tre arbeidsflytene feilet. Arbeidsflytene setter nå en standardkjede selv om det
mangler, i stedet for at kjøreren må ordnes for hånd.

Gitea har heller ingen «releases/latest/download»-sti slik GitHub har. Taggen
slås opp i API-et først.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
2026-09-14 21:24:39 +02:00

77 lines
2.6 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: Sørg for en Rust-verktøykjede
run: |
# Kjørebrukeren har rustup, men ingen standardkjede er satt. Uten dette svarer
# cargo med at den ikke vet hvilken versjon den skal bruke.
if not cargo --version >/dev/null 2>&1
rustup default stable
end
cargo --version
- 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