62 lines
1.5 KiB
YAML
62 lines
1.5 KiB
YAML
name: Build and Test Debian Package
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- '**'
|
|
tags:
|
|
- 'v*'
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
deb_filename: ${{ steps.get_deb_name.outputs.filename }}
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Make scripts executable
|
|
run: |
|
|
chmod +x release/build-docker.sh
|
|
chmod +x release/build-deb.sh
|
|
|
|
- name: Build Debian Package
|
|
run: ./release/build-docker.sh
|
|
|
|
- name: Get Deb Filename
|
|
id: get_deb_name
|
|
run: |
|
|
DEB_FILENAME=$(ls output/*.deb | xargs basename)
|
|
echo "filename=$DEB_FILENAME" >> $GITHUB_OUTPUT
|
|
|
|
- name: Upload Build Artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ steps.get_deb_name.outputs.filename }}
|
|
path: output/${{ steps.get_deb_name.outputs.filename }}
|
|
retention-days: 5
|
|
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
needs: build # only run tests if the build job succeeded
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Create output directory
|
|
run: mkdir -p output
|
|
|
|
- name: Download Build Artifact
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: ${{ needs.build.outputs.deb_filename }}
|
|
path: output/
|
|
|
|
- name: Build Test Docker Image
|
|
run: docker build -t uploader-tester -f Dockerfile.test .
|
|
|
|
- name: Run E2E Test Suite
|
|
run: docker run --rm uploader-tester |