Sharkey/.github/workflows/package.yml

75 lines
2.1 KiB
YAML
Raw Normal View History

2023-10-07 06:51:31 +03:00
name: Publish prebuild
on:
push:
branches:
- stable
release:
types: [published]
workflow_dispatch:
jobs:
build_binaries:
name: Build & ship binaries
2023-10-07 06:51:31 +03:00
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.0
2023-10-07 16:16:36 +03:00
with:
lfs: true
submodules: 'recursive'
2023-10-07 06:51:31 +03:00
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
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.0
with:
2023-10-07 16:42:39 +03:00
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"
2023-10-07 06:51:31 +03:00
- name: Set pnpm store path
run: echo "PNPM_STORE_PATH=$(pnpm store path)" >> $GITHUB_ENV
2023-10-07 06:51:31 +03:00
- 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 }}-
2023-10-07 16:42:39 +03:00
2023-10-07 06:51:31 +03:00
- 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 .
2023-10-07 18:01:20 +03:00
- name: Upload linux x64
uses: actions/upload-artifact@v3.1.3
with:
name: sharkey-linux-x64
path: /tmp/workspace.tar.gz