56 lines
2.3 KiB
YAML
56 lines
2.3 KiB
YAML
name: Deploy scraper-google
|
|
|
|
# Forgejo Actions (git.altricade.com). Workflow files live in .forgejo/workflows/.
|
|
# Mirrors the old .gitlab-ci.yml deploy: build/test the Go code, then SSH + rsync
|
|
# to the server and `docker compose up -d --build` for scraper-google.
|
|
on:
|
|
push:
|
|
workflow_dispatch: {} # manual "deploy" button, matching the GitLab `when: manual` gate
|
|
|
|
jobs:
|
|
build:
|
|
# Use the Node-based image so JS actions (checkout, setup-go) can run — the `go`
|
|
# image has no Node, which breaks actions/checkout with:
|
|
# exec: "node": executable file not found in $PATH
|
|
# setup-go then installs the exact Go the go.work needs.
|
|
runs-on: docker # node:22-bookworm
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '1.24'
|
|
- run: go version
|
|
- run: go build ./...
|
|
- run: go test ./...
|
|
|
|
deploy:
|
|
needs: build
|
|
runs-on: docker # node:22-bookworm — the runner has the host Docker socket mounted
|
|
# Deploy on any push to master, and also when triggered manually from master.
|
|
if: ${{ github.ref == 'refs/heads/master' }}
|
|
environment:
|
|
name: production
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
# node:22-bookworm has the Docker socket mounted but no docker binary,
|
|
# so `docker` is not found. Install the CLI + Compose plugin (no daemon;
|
|
# they talk to the host socket).
|
|
- name: Install Docker CLI + Compose plugin
|
|
run: |
|
|
set -eux
|
|
apt-get update
|
|
apt-get install -y --no-install-recommends ca-certificates curl gnupg
|
|
install -m 0755 -d /etc/apt/keyrings
|
|
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
|
|
chmod a+r /etc/apt/keyrings/docker.asc
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable" \
|
|
> /etc/apt/sources.list.d/docker.list
|
|
apt-get update
|
|
apt-get install -y --no-install-recommends docker-ce-cli docker-compose-plugin
|
|
docker --version
|
|
docker compose version
|
|
|
|
- name: Build & start scraper-google
|
|
working-directory: services/scraper-google
|
|
run: docker compose up -d --build
|