129 lines
4.2 KiB
YAML
129 lines
4.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: rosskeenhouse/build-golang:1.22.6-alpine
|
|
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"
|
|
- "/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-alpine"
|
|
path: "jx"
|
|
- run: echo "This job's status is ${{ job.status }}."
|
|
build-fedora:
|
|
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"
|
|
- "/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 4
|
|
steps:
|
|
- run: dnf install -y nodejs git make
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- run: dnf install -y dnf-plugins-core rpm-build rpmdevtools
|
|
- run: echo "$(pwd)/go/bin" >> $GITHUB_PATH
|
|
- run: dnf builddep -y build/jx.spec
|
|
- run: make build
|
|
- name: Run build
|
|
run: |
|
|
make rpm
|
|
- name: Archive binary
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: "jx-fedora-40"
|
|
path: "jx"
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: "RPMS"
|
|
path: "/root/rpmbuild/**/*.rpm"
|
|
- run: echo "This job's status is ${{ job.status }}."
|
|
build-ubuntu-focal:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
container:
|
|
image: ubuntu:focal
|
|
env:
|
|
GOPATH: /
|
|
SSH_AUTH_SOCK: /tmp/ssh.sock
|
|
ENVIRONMENT: dev
|
|
DEBIAN_FRONTEND: noninteractive
|
|
TZ: America/Los_Angeles
|
|
volumes:
|
|
- "/etc/gitconfig:/etc/gitconfig:ro"
|
|
- "/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"
|
|
options: --cpus 4
|
|
steps:
|
|
- run: apt-get -y update && apt-get install -y tzdata
|
|
- run: apt-get install -y nodejs git make
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- run: echo "$(pwd)/go/bin" >> $GITHUB_PATH
|
|
- run: make ubuntu-deps
|
|
- run: make build
|
|
- run: make deb
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: "jx-ubuntu-focal"
|
|
path: "jx"
|