Add GitHub workflow for building the OSTree repository
Also add a script to download and unpack the artifact on my server's `public_html/`.
This commit is contained in:
parent
cb9799f779
commit
e014da3b3d
2 changed files with 52 additions and 0 deletions
32
.github/workflows/build.yml
vendored
Normal file
32
.github/workflows/build.yml
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
name: build
|
||||
on:
|
||||
schedule:
|
||||
- cron: 0 2 * * 6
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: docker.io/fedora:latest
|
||||
# Fix SELinux for the built OSTree: https://github.com/coreos/rpm-ostree/issues/1943
|
||||
options: --privileged --security-opt label:disable
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: dnf install -y rpm-ostree selinux-policy selinux-policy-targeted policycoreutils
|
||||
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Build OSTree
|
||||
run: ./compose.sh
|
||||
|
||||
# upload-artifact@v2 has trouble with tens of thousands of files
|
||||
- name: Create repo tarball
|
||||
run: tar -czf /var/tmp/repo.tar.gz -C /var/tmp/repo .
|
||||
|
||||
- name: Create repository artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: repository
|
||||
path: /var/tmp/repo.tar.gz
|
||||
retention-days: 5
|
20
github-fetch.sh
Executable file
20
github-fetch.sh
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/bin/sh
|
||||
# Download built GitHub OSTree repository artifact and unpack it into a plain directory
|
||||
set -eux
|
||||
|
||||
# download latest repo build
|
||||
REPO_FINAL="$(dirname $0)/pitti-workstation"
|
||||
REPO="${REPO_FINAL}.new"
|
||||
|
||||
CURL="curl -u token:$(cat ~/.config/github-token) --show-error --fail"
|
||||
RESPONSE=$($CURL --silent https://api.github.com/repos/martinpitt/ostree-pitti-workstation/actions/artifacts)
|
||||
ZIP=$(echo "$RESPONSE" | jq --raw-output '.artifacts | map(select(.name == "repository"))[0].archive_download_url')
|
||||
echo "INFO: Downloading $ZIP ..."
|
||||
[ -e /tmp/repository.zip ] || $CURL -L -o /tmp/repository.zip "$ZIP"
|
||||
rm -rf "$REPO"
|
||||
mkdir -p "$REPO"
|
||||
unzip -p /tmp/repository.zip | tar -xzC "$REPO"
|
||||
rm /tmp/repository.zip
|
||||
[ ! -e "$REPO_FINAL" ] || mv "${REPO_FINAL}" "${REPO_FINAL}.old"
|
||||
mv "$REPO" "$REPO_FINAL"
|
||||
rm -rf "${REPO_FINAL}.old"
|
Loading…
Reference in a new issue