95 lines
3.2 KiB
YAML
95 lines
3.2 KiB
YAML
name: Declarative Tests
|
|
run-name: ${{ gitea.actor }} testing
|
|
on:
|
|
- push
|
|
- workflow_dispatch
|
|
- issue_comment
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: registry.cv.mazarbul.net/declarative/build-golang:1.22.1-alpine-x86_64
|
|
env:
|
|
GOPATH: /
|
|
SSH_AUTH_SOCK: /tmp/ssh.sock
|
|
ENVIRONMENT: dev
|
|
volumes:
|
|
- "/etc/timezone:/etc/timezone:ro"
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
- "/etc/gitconfig:/etc/gitconfig:ro"
|
|
- "/${{ env.SSH_AUTH_SOCK }}:/tmp/ssh.sock"
|
|
- "/opt/gitea/act_runner/.ssh/known_hosts:/root/.ssh/known_hosts"
|
|
- "/opt/gitea/act_runner/.gitconfig:/root/.gitconfig:ro"
|
|
- "/opt/gitea/act_runner/.git-credentials:/root/.git-credentials:ro"
|
|
- "/etc/ssl/certs:/etc/ssl/certs:ro"
|
|
options: --cpus 10
|
|
steps:
|
|
- run: apk add --no-cache nodejs
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v3
|
|
- run: echo "The ${{ gitea.repository }} repository has been cloned to the runner."
|
|
- run: echo "The workflow is now ready to test your code on the runner."
|
|
- name: Run tests
|
|
run: |
|
|
go test -coverprofile=artifacts/coverage.profile ./...
|
|
- name: Run build
|
|
run: |
|
|
make build
|
|
- name: cli tests
|
|
run: |
|
|
go test
|
|
- run: echo "This job's status is ${{ job.status }}."
|
|
- run: echo "This job's status is ${{ job.status }}."
|
|
- name: coverage report
|
|
run: |
|
|
go tool cover -html=artifacts/coverage.profile -o artifacts/code-coverage.html
|
|
- name: Archive code coverage results
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: code-coverage-report
|
|
path: artifacts/code-coverage.html
|
|
- name: Archive binary
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: jx
|
|
path: jx
|
|
- run: echo "This job's status is ${{ job.status }}."
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: fedora:latest
|
|
env:
|
|
GOPATH: /
|
|
SSH_AUTH_SOCK: /tmp/ssh.sock
|
|
ENVIRONMENT: dev
|
|
volumes:
|
|
- "/etc/timezone:/etc/timezone:ro"
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
- "/etc/gitconfig:/etc/gitconfig:ro"
|
|
- "/${{ env.SSH_AUTH_SOCK }}:/tmp/ssh.sock"
|
|
- "/opt/gitea/act_runner/.ssh/known_hosts:/root/.ssh/known_hosts"
|
|
- "/opt/gitea/act_runner/.gitconfig:/root/.gitconfig:ro"
|
|
- "/opt/gitea/act_runner/.git-credentials:/root/.git-credentials:ro"
|
|
- "/etc/ssl/certs:/etc/ssl/certs:ro"
|
|
options: --cpus 10
|
|
steps:
|
|
- run: dnf install -y nodejs
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v3
|
|
- run: echo "VERSION=${GITHUB_REF#refs/*/v}" >> $GITHUB_ENV
|
|
- run: dnf install -y dnf-plugins-core
|
|
- run: dnf builddep build/jx.spec
|
|
- name: Run build
|
|
run: |
|
|
make rpm
|
|
- name: Archive binary
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: jx
|
|
path: jx
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
path: "/root/rpmbuild/**/*.rpm"
|
|
- run: echo "This job's status is ${{ job.status }}."
|