Repository navigation
59 lines (56 loc) · 2.07 KB
/
Copy pathrelease.yml
File metadata and controls
59 lines (56 loc) · 2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
name: Release
# Uruchamiane na tag w formacie v<wersja> (np. v0.6). MUSI byc zgodne z
# `using => <wersja>` w Bit.hk oraz z adresami w scripts/install.sh
# (`releases/download/v<wersja>/hackerc`) - tak pobiera tez kolejny stage0.
on:
push:
tags:
- "v*"
jobs:
build:
name: hackerc + hack3rc (linux-x86_64)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Pobierz stage0 (poprzednie wydanie)
run: |
STAGE0="$(grep -E '^\s*->\s*using\s*=>' Bit.hk | head -n1 | sed -E 's/.*=>\s*0\.([0-9]+).*/\1/')"
curl -fsSL -o stage0-hackerc "https://github.com/HackerOS-Linux-System/HackerScript/releases/download/v0.$((STAGE0 - 1))/hackerc"
chmod +x stage0-hackerc
- name: stage0 -> hackerc (crate) -> cargo build
run: |
./stage0-hackerc build hackerc/cmd/main.hcs -o /tmp/hackerc-crate
(cd /tmp/hackerc-crate && cargo build --release)
- name: swiezy hackerc -> hack3rc
run: |
/tmp/hackerc-crate/target/release/hackerscript_app build hack3rc/cmd/main.hcs -o /tmp/hack3rc-crate --crate-name hack3rc
(cd /tmp/hack3rc-crate && cargo build --release)
- name: Testy
env:
HACKERC: /tmp/hackerc-crate/target/release/hackerscript_app
run: bash tests/run.sh
- name: Zbierz assety
run: |
mkdir -p dist_final
cp /tmp/hackerc-crate/target/release/hackerscript_app dist_final/hackerc
cp /tmp/hack3rc-crate/target/release/hack3rc dist_final/hack3rc
- uses: actions/upload-artifact@v4
with:
name: hackerscript-${{ github.ref_name }}
path: dist_final/*
publish:
name: Publikacja wydania
runs-on: ubuntu-latest
needs: build
permissions:
contents: write
steps:
- uses: actions/download-artifact@v4
with:
path: dist_final
merge-multiple: true
- uses: softprops/action-gh-release@v2
with:
files: dist_final/*
generate_release_notes: true