63 lines
1.7 KiB
YAML
63 lines
1.7 KiB
YAML
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: docker # ? check what it really means
|
|
|
|
strategy:
|
|
matrix:
|
|
node-version: [23]
|
|
|
|
steps:
|
|
- name: Checkout git repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: "Install pnpm"
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 10
|
|
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: "pnpm"
|
|
|
|
- name: "Install dependencies"
|
|
run: pnpm install
|
|
|
|
- name: "Lint code"
|
|
run: pnpm run lint
|
|
|
|
- name: "Checking code format"
|
|
run: pnpm run format:check
|
|
|
|
- name: "Build the project"
|
|
run: pnpm run build
|
|
|
|
deploy:
|
|
needs: build
|
|
runs-on: docker
|
|
steps:
|
|
- name: Get current date
|
|
id: date
|
|
run: echo "::set-output name=date::$(date +'%Y%m%d%H%M%S')"
|
|
- name: Setup SSH
|
|
run: |
|
|
mkdir -p ~/.ssh
|
|
chmod 0700 ~/.ssh
|
|
echo "${{ secrets.SSHPRIVKEY }}" > ~/.ssh/id_ed25519
|
|
chmod 0600 ~/.ssh/id_ed25519
|
|
echo "${{ vars.WEBSERVER_IP }} ${{ secrets.SSHPUBKEY }}" >> ~/.ssh/known_hosts
|
|
chmod 0600 ~/.ssh/known_hosts
|
|
- name: Push
|
|
run: |
|
|
scp -P ${{ secrets.SSHPORT }} -r dist ${{ secrets.SSH_USERNAME }}@${{ vars.WEBSERVER_IP }}:~/oblog-parallels/build-${{ steps.date.outputs.date }}
|
|
- name: Update symlink
|
|
run: |
|
|
ssh ${{ secrets.SSH_USERNAME }}@${{ vars.WEBSERVER_IP }} -p ${{ secrets.SSHPORT }} "cp -r ~/oblog-parallels/build-${{ steps.date.outputs.date }} ~/oblog-parallels/dist"
|
|
|