diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..49b4de2 --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,85 @@ +name: "Release" + +on: + push: + tags: "v*" + +jobs: + release: + name: "Release" + runs-on: debian-latest + steps: + - name: Checkout sources + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Determine the version of the release + run: | + VERSION=${GITHUB_REF_NAME#v} + echo "Releasing version: $VERSION" + echo "VERSION=$VERSION" >> $GITHUB_ENV + + - name: Install Rust stable toolchain + uses: https://github.com/actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - name: Use sparse Cargo index for crates.io + run: echo -e '[registries.crates-io]\nprotocol = "sparse"' >> /root/.cargo/config.toml + + - name: Install cargo-deb + uses: https://github.com/brndnmtthws/rust-action-cargo-binstall@v1 + with: + packages: cargo-deb + + - name: Run cargo-deb + uses: https://github.com/actions-rs/cargo@v1 + with: + command: deb + + - name: Install Go + uses: actions/setup-go@v4 + with: + go-version: '>=1.20.1' + + - name: Release to Gitea + uses: actions/release-action@main + with: + # This is available by default. + api_key: '${{ secrets.RELEASE_TOKEN }}' + files: target/debian/podbringer*.deb + title: 'Release ${{ env.VERSION }}' + + release-crate: + name: "Release crate" + runs-on: debian-latest + steps: + - name: Checkout sources + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Install Rust stable toolchain + uses: https://github.com/actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - name: Use sparse Cargo index for crates.io + run: echo -e '[registries.crates-io]\nprotocol = "sparse"' >> /root/.cargo/config.toml + + - name: Register the Gitea crate registry with Cargo + run: echo -e '[registries.luon]\nindex = "https://git.luon.net/paul/_cargo-index.git"' >> /root/.cargo/config.toml + + - name: Run cargo publish + uses: https://github.com/actions-rs/cargo@v1 + env: + # This needs to be provided for the repository; no login necessary as a result. + CARGO_REGISTRIES_LUON_TOKEN: '${{ secrets.CARGO_REGISTRIES_LUON_TOKEN }}' + with: + command: publish + args: --registry luon