diff --git a/.github/workflows/release-tarball.yml b/.github/workflows/release-tarball.yml new file mode 100644 index 00000000..eeb4ecf8 --- /dev/null +++ b/.github/workflows/release-tarball.yml @@ -0,0 +1,52 @@ +name: Generate release tarball + +on: + workflow_dispatch: + inputs: + tag: + description: 'Tag to build' + required: true + +jobs: + build: + name: Generate release tarball (${{ github.event.repository.name }} ${{ github.event.inputs.tag }}) + runs-on: ubuntu-latest + + steps: + - name: Set timestamp + run: echo "timestamp=$(date +'%Y%m%d-%H%M%S')" >> $GITHUB_ENV + + - name: Checkout repository + uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.tag }} + + - name: Install dependencies + run: | + sudo scripts/install_xrdp_build_dependencies_with_apt.sh min amd64 + + - name: Run make distcheck + run: | + ./bootstrap + ./configure + make distcheck + + - name: Find generated tarball + id: find_tarball + run: | + TARBALL=$(find . -maxdepth 1 -name "*.tar.gz" | head -n 1) + if [ -z "$TARBALL" ]; then + echo "Error: No tarball found" >&2 + exit 1 + fi + echo "tarball=$TARBALL" >> $GITHUB_ENV + + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ github.event.repository.name }}-${{ github.event.inputs.tag }}-${{ env.timestamp }} + path: "${{ env.tarball }}" + if-no-files-found: error + compression-level: 0 + retention-days: 7 +