diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..f824a74 --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,29 @@ +name: Build .deb + +on: workflow_call + +env: + SCCACHE_GHA_ENABLED: "true" + RUSTC_WRAPPER: "sccache" + +jobs: + Build-Deb: + runs-on: aarch64 + steps: + - name: Run sccache-cache + uses: https://github.com/mozilla-actions/sccache-action@v0.0.5 + - name: Check out repository code + uses: actions/checkout@v3 + with: + submodules: "recursive" + - name: Build + run: "cargo build --release --target=aarch64-unknown-linux-gnu" + - name: Build .deb + run: "cargo deb --target=aarch64-unknown-linux-gnu" + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: release + path: | + ./target/aarch64-unknown-linux-gnu/debian/*.deb + ./target/aarch64-unknown-linux-gnu/release/tesla-charge-controller diff --git a/.gitea/workflows/deb.yaml b/.gitea/workflows/deb.yaml index c182192..65e5769 100644 --- a/.gitea/workflows/deb.yaml +++ b/.gitea/workflows/deb.yaml @@ -1,25 +1,21 @@ -name: Build .deb on release -run-name: Building .deb of latest release and adding to apt repo +name: Build and release .deb on: push: tags: - - "*" + - "v[0-9]+.[0-9]+.[0-9]+" jobs: - Build-Deb: + Build: + uses: ./.gitea/workflows/build.yaml + + Release: runs-on: aarch64 steps: - - name: Check out repository code - uses: actions/checkout@v3 - with: - submodules: "recursive" - - name: Build - run: "cargo build --release --target=aarch64-unknown-linux-gnu" - - name: Build .deb - run: "cargo deb --target=aarch64-unknown-linux-gnu" + - name: Download artifacts + uses: actions/download-artifact@v4 - name: Add .deb to apt repository - run: "curl --user alex:${{ secrets.PACKAGING_TOKEN }} --upload-file $(ls -t ./target/aarch64-unknown-linux-gnu/debian/*.deb | head -1) https://git.alexjanka.com/api/packages/alex/debian/pool/testing/main/upload" + run: "curl --user alex:${{ secrets.PACKAGING_TOKEN }} --upload-file $(ls -t ./release/*.deb | head -1) https://git.alexjanka.com/api/packages/alex/debian/pool/testing/main/upload" - name: "Release package" id: use-go-action uses: https://gitea.com/actions/release-action@main diff --git a/.gitea/workflows/pre.yaml b/.gitea/workflows/pre.yaml new file mode 100644 index 0000000..c764156 --- /dev/null +++ b/.gitea/workflows/pre.yaml @@ -0,0 +1,10 @@ +name: Build prerelease .deb + +on: + push: + tags: + - "*-pre" + +jobs: + Build: + uses: ./.gitea/workflows/build.yaml