name: release "on": push: tags: - "v*.*.*" workflow_dispatch: permissions: contents: write jobs: linux-amd64: runs-on: [self-hosted, linux, arch, homelab] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Build release binary shell: bash run: cargo build --release --locked - name: Package artifact shell: bash run: | tag="${GITHUB_REF##*/}" version="${tag#v}" mkdir -p dist cp target/release/gosleep-timer dist/gosleep-timer tar -C dist -czf "dist/gosleep-timer-${version}-linux-amd64.tar.gz" gosleep-timer sha256sum "dist/gosleep-timer-${version}-linux-amd64.tar.gz" > "dist/gosleep-timer-${version}-linux-amd64.tar.gz.sha256" - name: Create Gitea release id: release shell: bash env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} run: | tag="${GITHUB_REF##*/}" body="$(cat <> "$GITHUB_OUTPUT" - name: Upload Gitea release assets shell: bash env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} run: | release_id="${{ steps.release.outputs.release_id }}" for asset in dist/*.tar.gz dist/*.sha256; do name="$(basename "$asset")" curl -fsS \ -X POST "${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?name=${name}" \ -H "Authorization: token ${GITEA_TOKEN}" \ -F "attachment=@${asset}" done - name: Upload artifact uses: actions/upload-artifact@v3 with: name: gosleep-timer-linux-amd64 path: dist/*