actions/checkout uses GITHUB_SERVER_URL=http://localhost:3002 which is unreachable from inside the Docker container. Use the public Forgejo URL directly, matching the pattern used by package.yml.
48 lines
1.4 KiB
YAML
48 lines
1.4 KiB
YAML
name: release
|
|
|
|
on:
|
|
push:
|
|
tags: ["v*"]
|
|
|
|
env:
|
|
DL_DIR: /srv/breadway-dl
|
|
ECOSYSTEM_DIR: /home/breadway/Projects/bread-ecosystem
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: [self-hosted, hestia]
|
|
steps:
|
|
- name: checkout
|
|
run: |
|
|
git clone --branch "${GITHUB_REF_NAME}" --depth 1 \
|
|
"https://git.breadway.dev/${GITHUB_REPOSITORY}.git" .
|
|
|
|
- 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}/breadpaper/${VERSION}"
|
|
mkdir -p "${PKG_DIR}"
|
|
cp target/release/breadpaper "${PKG_DIR}/breadpaper-x86_64"
|
|
strip "${PKG_DIR}/breadpaper-x86_64"
|
|
sha256sum "${PKG_DIR}/breadpaper-x86_64" | awk '{print $1}' \
|
|
> "${PKG_DIR}/breadpaper-x86_64.sha256"
|
|
cp bakery.toml "${PKG_DIR}/bakery.toml"
|
|
ln -sfn "${VERSION}" "${DL_DIR}/breadpaper/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"
|