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