name: Build and Package dnc on: push: tags: - 'v*' pull_request: workflow_dispatch: inputs: version: description: 'Version to build (e.g., 0.3.0)' required: false default: '' env: KITTY_VERSION: '0.46.2' GO_VERSION: '1.22' jobs: build-packages: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Determine version id: version shell: bash run: | if [ -n "${{ inputs.version }}" ]; then VERSION="${{ inputs.version }}" elif [[ "${{ github.ref }}" == refs/tags/v* ]]; then VERSION="${GITHUB_REF_NAME#v}" else VERSION="0.2.0-$(git rev-parse --short HEAD)" fi echo "VERSION=$VERSION" >> $GITHUB_OUTPUT - name: Download kitty binary run: | set -e mkdir -p build KITTY_ARCHIVE="kitty-${KITTY_VERSION}-x86_64.txz" KITTY_URL="https://github.com/kovidgoyal/kitty/releases/download/v${KITTY_VERSION}/${KITTY_ARCHIVE}" echo "Downloading kitty from: $KITTY_URL" curl -fL "$KITTY_URL" -o "build/$KITTY_ARCHIVE" tar -xJf "build/$KITTY_ARCHIVE" -C build/ mv build/kitty.app build/kitty ls -la build/ ls -la build/kitty/bin/ - name: Set up Go uses: actions/setup-go@v5 with: go-version: '${{ env.GO_VERSION }}' - name: Install nfpm run: | go install github.com/goreleaser/nfpm/v2/cmd/nfpm@latest export PATH="$PATH:$(go env GOPATH)/bin" nfpm --version - name: Build DEB package env: VERSION: '${{ steps.version.outputs.VERSION }}' run: | export PATH="$PATH:$(go env GOPATH)/bin" mkdir -p dist nfpm package \ --packager deb \ --config packaging/nfpm.yaml \ --target dist/ - name: Build RPM package env: VERSION: '${{ steps.version.outputs.VERSION }}' run: | export PATH="$PATH:$(go env GOPATH)/bin" mkdir -p dist nfpm package \ --packager rpm \ --config packaging/nfpm.yaml \ --target dist/ - name: List artifacts run: | echo "Packages built:" ls -lh dist/ - name: Upload packages as artifacts uses: actions/upload-artifact@v4 with: name: dnc-packages path: dist/