mirror of
https://github.com/juanfont/headscale.git
synced 2025-09-16 17:50:44 +02:00
106 lines
2.9 KiB
YAML
106 lines
2.9 KiB
YAML
name: CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
# The "build" workflow
|
|
build:
|
|
# The type of runner that the job will run on
|
|
runs-on: ubuntu-latest
|
|
|
|
# Steps represent a sequence of tasks that will be executed as part of the job
|
|
steps:
|
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
|
- uses: actions/checkout@v2
|
|
|
|
# Install and run golangci-lint as a separate step, it's much faster this
|
|
# way because this action has caching. It'll get run again in `make lint`
|
|
# below, but it's still much faster in the end than installing
|
|
# golangci-lint manually in the `Run lint` step.
|
|
- uses: golangci/golangci-lint-action@v2
|
|
|
|
# Setup Go
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: '1.16.3' # The Go version to download (if necessary) and use.
|
|
|
|
# Install all the dependencies
|
|
- name: Install dependencies
|
|
run: |
|
|
go version
|
|
go get -u golang.org/x/lint/golint
|
|
sudo apt update
|
|
sudo apt install -y make
|
|
|
|
- name: Run tests
|
|
run: make test
|
|
|
|
- name: Run lint
|
|
run: make lint
|
|
|
|
- name: Run build
|
|
run: make
|
|
|
|
integration:
|
|
# The type of runner that the job will run on
|
|
runs-on: ubuntu-20.04
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres
|
|
env:
|
|
POSTGRES_DB: headscale
|
|
POSTGRES_USER: foo
|
|
POSTGRES_PASSWORD: bar
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: golangci/golangci-lint-action@v2
|
|
|
|
# Setup Go
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: '1.16.3' # The Go version to download (if necessary) and use.
|
|
|
|
# Install all the dependencies
|
|
- name: Install dependencies
|
|
run: |
|
|
go version
|
|
go get -u golang.org/x/lint/golint
|
|
sudo apt update
|
|
sudo apt install -y make jq wireguard-tools
|
|
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.gpg | sudo apt-key add -
|
|
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.list | sudo tee /etc/apt/sources.list.d/tailscale.list
|
|
|
|
|
|
- name: Run build
|
|
run: make
|
|
|
|
- name: Generate wireguard keys
|
|
run: |
|
|
wg genkey > private.key
|
|
|
|
- name: Setup ENV
|
|
run: |
|
|
echo "{}" > config.json
|
|
echo "SERVER_URL=http://127.0.0.1:8000" >> $GITHUB_ENV
|
|
echo "LISTEN_ADDR=0.0.0.0:8000" >> $GITHUB_ENV
|
|
echo "PRIVATE_KEY_PATH=private.key" >> $GITHUB_ENV
|
|
echo "DERP_MAP_PATH=derp.yaml" >> $GITHUB_ENV
|
|
echo "DB_HOST=postgres" >> $GITHUB_ENV
|
|
echo "DB_PORT=5432" >> $GITHUB_ENV
|
|
echo "DB_NAME=headscale" >> $GITHUB_ENV
|
|
echo "DB_USER=foo" >> $GITHUB_ENV
|
|
echo "DB_PASS=bar" >> $GITHUB_ENV
|
|
|
|
- name: Print version WIP
|
|
run: |
|
|
./headscale version |