80 lines
2.9 KiB
YAML
80 lines
2.9 KiB
YAML
name: "Release Build"
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
required: true
|
|
type: string
|
|
description: 'The server and web release tag ("vX.Y.Z") or "master"'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
Debian:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
matrix:
|
|
release:
|
|
- bullseye
|
|
- bookworm
|
|
arch:
|
|
- amd64
|
|
- arm64
|
|
- armhf
|
|
steps:
|
|
- name: "Install dependencies"
|
|
run: |-
|
|
sudo apt-get install --yes python3-git
|
|
|
|
- name: "Checkout Repository"
|
|
uses: actions/checkout@v3
|
|
|
|
- name: "Prepare Repository"
|
|
run: |-
|
|
./checkout.py ${{ github.event.client_payload.version }}
|
|
|
|
- name: "Run builder for Debian ${{ matrix.version }} ${{ matrix.arch }}"
|
|
run: |-
|
|
sudo ./build.py ${{ inputs.version }} debian ${{ matrix.arch }} ${{ matrix.release }}
|
|
|
|
- name: "Upload artifacts to repository server"
|
|
uses: appleboy/scp-action@v0.1.7
|
|
with:
|
|
host: "${{ secrets.REPO_HOST }}"
|
|
username: "${{ secrets.REPO_USER }}"
|
|
key: "${{ secrets.REPO_KEY }}"
|
|
source: "out/debian/*"
|
|
strip_components: 2
|
|
target: "/srv/incoming/${{ inputs.version }}/debian/${{ matrix.arch }}/${{ matrix.release }}"
|
|
|
|
- name: "Import artifacts into reprepro"
|
|
uses: nekiro/ssh-job@main
|
|
with:
|
|
host: "${{ secrets.REPO_HOST }}"
|
|
username: "${{ secrets.REPO_USER }}"
|
|
key: "${{ secrets.REPO_KEY }}"
|
|
command: |-
|
|
if [[ ${{ inputs.version }} == "master" ]]; then
|
|
COMPONENT="unstable"
|
|
else
|
|
COMPONENT="unstable"
|
|
fi
|
|
sudo reprepro --basedir --component ${COMPONENT} /srv/debian includedeb ${{ matrix.release }} /srv/incoming/${{ inputs.version }}/debian/${{ matrix.arch }}/${{ matrix.release }}/*.deb
|
|
sudo reprepro --basedir --component ${COMPONENT} /srv/debian includedsc ${{ matrix.release }} /srv/incoming/${{ inputs.version }}/dscian/${{ matrix.arch }}/${{ matrix.release }}/*.dsc
|
|
|
|
- name: "Move artifacts into repository"
|
|
uses: nekiro/ssh-job@main
|
|
with:
|
|
host: "${{ secrets.REPO_HOST }}"
|
|
username: "${{ secrets.REPO_USER }}"
|
|
key: "${{ secrets.REPO_KEY }}"
|
|
command: |-
|
|
sudo mkdir -p /srv/repository/mirror/releases/server/debian/versions/${{ inputs.version }}/${{ matrix.arch }}
|
|
sudo mv -t /srv/repository/mirror/releases/server/debian/versions/${{ inputs.version }}/${{ matrix.arch }} /srv/incoming/${{ inputs.version }}/debian/${{ matrix.arch }}/${{ matrix.release }}/*.deb
|
|
if [[ ${{ inputs.version }} != "master" ]]; then
|
|
sudo ln -s /srv/repository/mirror/releases/server/debian/versions/${{ inputs.version }}/${{ matrix.arch }} /srv/repository/mirror/releases/server/debian/latest-server
|
|
fi
|
|
|