1
0
mirror of https://github.com/muety/wakapi.git synced 2023-08-10 21:12:56 +03:00
wakapi/.github/workflows/ci.yml

125 lines
2.7 KiB
YAML
Raw Normal View History

name: ci
on:
push:
pull_request:
jobs:
test:
name: 'Unit- & API tests'
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.x
2023-02-11 05:21:26 +03:00
uses: actions/setup-go@v3
with:
go-version: ^1.19
id: go
- name: Check out code into the Go module directory
2023-02-11 05:21:26 +03:00
uses: actions/checkout@v3
- name: Get dependencies
run: go get
- name: Unit Tests
2023-01-02 20:18:58 +03:00
run: CGO_ENABLED=0 go test `go list ./... | grep -v 'github.com/muety/wakapi/scripts'` -run ./... # skip scripts package, because not actually a package
- name: API Tests
run: |
npm -g install newman
./testing/run_api_tests.sh
mapi:
name: 'Automated pen-tests with Mayhem for API'
runs-on: ubuntu-latest
2022-09-30 01:02:30 +03:00
env:
CGO_ENABLED: 0
steps:
- name: Set up Go 1.x
2023-02-11 05:21:26 +03:00
uses: actions/setup-go@v3
with:
go-version: ^1.19
- name: Check out code into the Go module directory
2023-02-11 05:21:26 +03:00
uses: actions/checkout@v3
- name: Get dependencies
run: go get
- name: Build
2022-09-30 01:02:30 +03:00
run: go build -v .
- name: start wakapi
run: ./wakapi --config config.default.yml &
- name: create a trivial testing user
run: sqlite3 wakapi_db.db "insert into users (id, api_key) values ('mapi', 'test-api-key')"
- name: Run Mayhem for API
uses: ForAllSecure/mapi-action@v1
continue-on-error: true
with:
mapi-token: ${{ secrets.MAPI_TOKEN }}
api-url: http://localhost:3000/api/
api-spec: static/docs/swagger.yaml
2022-05-13 17:13:55 +03:00
target: muety/wakapi
duration: 1min
sarif-report: mapi.sarif
run-args: |
--header-auth
Authorization: Basic dGVzdC1hcGkta2V5
- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: mapi.sarif
build:
name: 'Build (Win, Linux, Mac)'
strategy:
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.platform }}
2022-09-30 01:02:30 +03:00
env:
CGO_ENABLED: 0
2022-09-30 01:02:30 +03:00
steps:
- name: Set up Go 1.x
2023-02-11 05:21:26 +03:00
uses: actions/setup-go@v3
with:
go-version: ^1.19
id: go
- name: Check out code into the Go module directory
2023-02-11 05:21:26 +03:00
uses: actions/checkout@v3
- name: Get dependencies
run: go get
- name: Build
2022-09-30 01:02:30 +03:00
run: go build -v .
2022-12-04 10:02:36 +03:00
migration:
name: Migration tests
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
db: [sqlite, postgres, mysql, mariadb]
2022-12-04 10:02:36 +03:00
steps:
- name: Set up Go 1.x
2023-02-11 05:21:26 +03:00
uses: actions/setup-go@v3
2022-12-04 10:02:36 +03:00
with:
go-version: ^1.19
id: go
- name: Check out code into the Go module directory
2023-02-11 05:21:26 +03:00
uses: actions/checkout@v3
2022-12-04 10:02:36 +03:00
- run: ./testing/run_api_tests.sh ${{ matrix.db }} --migration