name: "CI" on: push: branches: ["main"] tags: ["v*"] pull_request: branches: ["main"] jobs: test: name: Test runs-on: native steps: - uses: actions/checkout@v4 - name: Run unit tests run: nix develop --command cargo test --lib build: name: Build ${{ matrix.package }} runs-on: native strategy: fail-fast: false matrix: package: - default - x86_64-linux-musl - aarch64-linux steps: - uses: actions/checkout@v4 - name: Build run: nix build --print-build-logs .#packages.x86_64-linux.${{ matrix.package }} - name: Prepare release artifact if: startsWith(forgejo.ref, 'refs/tags/') run: | target="${{ matrix.package }}" if [ "$target" = "default" ]; then target="x86_64-unknown-linux-gnu" elif [ "$target" = "x86_64-linux-musl" ]; then target="x86_64-unknown-linux-musl" elif [ "$target" = "aarch64-linux" ]; then target="aarch64-unknown-linux-gnu" fi cp result/bin/mkv "mkv-${target}" - name: Upload artifact if: startsWith(forgejo.ref, 'refs/tags/') uses: actions/upload-artifact@v3 with: name: mkv-${{ matrix.package }} path: mkv-* release: name: Create release needs: [test, build] runs-on: native if: startsWith(forgejo.ref, 'refs/tags/') steps: - uses: actions/download-artifact@v3 with: path: artifacts - name: Collect artifacts run: | mkdir -p release find artifacts -type f -name 'mkv-*' -exec mv {} release/ \; ls -la release/ - name: Create release uses: actions/forgejo-release@v2 with: direction: upload release-dir: release token: ${{ secrets.GITHUB_TOKEN }}