name: Publish prebuild on: push: branches: - stable release: types: [published] workflow_dispatch: jobs: build_binaries: name: Build & ship binaries runs-on: ubuntu-latest strategy: matrix: node-version: [20.x] python-version: [3.11.x] if: github.repository == 'transfem-org/Sharkey' permissions: contents: read packages: write steps: - name: Check out the repo uses: actions/checkout@v4.1.1 with: lfs: true submodules: 'recursive' - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - name: Setup Python uses: actions/setup-python@v4.7.1 with: python-version: ${{ matrix.python-version }} - name: Cache APT Packages uses: awalsh128/cache-apt-pkgs-action@v1.3.1 with: packages: "build-essential binfmt-support qemu-user-static ffmpeg tini curl libjemalloc-dev libjemalloc2 uuid-dev libx11-dev libxkbfile-dev execstack libgconf-2-4 libsecret-1-dev" - name: Set pnpm store path run: echo "PNPM_STORE_PATH=$(pnpm store path)" >> $GITHUB_ENV - name: Cache node modules uses: actions/cache@v3 with: path: ${{ env.PNPM_STORE_PATH }} key: pnpm-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | pnpm-${{ runner.os }}- - name: Build run: | corepack enable corepack prepare pnpm@latest --activate CI=true pnpm install CI=true pnpm run build rm -rdf packages/backend/node_modules rm -rdf packages/frontend/node_modules rm -rdf packages/megalodon/node_modules rm -rdf packages/misskey-js/node_modules rm -rdf node_modules CI=true pnpm --prod --no-optional install tar -czf /tmp/workspace.tar.gz . - name: Upload linux x64 uses: actions/upload-artifact@v3.1.3 with: name: sharkey-linux-x64 path: /tmp/workspace.tar.gz