name: release on: push: tags: ["v*"] permissions: contents: write env: DL_DIR: /srv/breadway-dl ECOSYSTEM_DIR: /home/breadway/Projects/bread-ecosystem jobs: build: runs-on: [self-hosted, hestia] steps: - uses: actions/checkout@v4 - name: install build deps run: sudo apt-get install -y libnm-dev libdbus-1-dev pkg-config 2>/dev/null || true - name: build run: cargo build --release --locked - name: test run: cargo test --release --locked - name: prepare artifacts run: | VERSION="${GITHUB_REF_NAME#v}" PKG_DIR="${DL_DIR}/breadcrumbs/${VERSION}" mkdir -p "${PKG_DIR}" cp target/release/breadcrumbs "${PKG_DIR}/breadcrumbs-x86_64" strip "${PKG_DIR}/breadcrumbs-x86_64" sha256sum "${PKG_DIR}/breadcrumbs-x86_64" | awk '{print $1}' \ > "${PKG_DIR}/breadcrumbs-x86_64.sha256" cp breadcrumbs.example.toml "${PKG_DIR}/" cp bakery.toml "${PKG_DIR}/bakery.toml" ln -sfn "${PKG_DIR}" "${DL_DIR}/breadcrumbs/latest" - name: ensure bread-ecosystem run: | if [[ -d "${ECOSYSTEM_DIR}/.git" ]]; then git -C "${ECOSYSTEM_DIR}" pull --ff-only else mkdir -p "$(dirname "${ECOSYSTEM_DIR}")" git clone https://github.com/Breadway/bread-ecosystem.git "${ECOSYSTEM_DIR}" fi - name: regenerate index.json run: bash "${ECOSYSTEM_DIR}/scripts/gen-index.sh" - name: upload to GitHub Release env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | VERSION="${GITHUB_REF_NAME#v}" PKG_DIR="${DL_DIR}/breadcrumbs/${VERSION}" gh release create "${GITHUB_REF_NAME}" \ --title "breadcrumbs v${VERSION}" --generate-notes 2>/dev/null || true gh release upload "${GITHUB_REF_NAME}" \ "${PKG_DIR}/breadcrumbs-x86_64" \ "${PKG_DIR}/breadcrumbs-x86_64.sha256" \ --clobber