Skip to content

Merge pull request #361 from jmpsec/new-release-0.3.2 #79

Merge pull request #361 from jmpsec/new-release-0.3.2

Merge pull request #361 from jmpsec/new-release-0.3.2 #79

name: Build and test osctrl
on:
push:
branches:
- main
env:
GOLANG_VERSION: 1.21.3
OSQUERY_VERSION: 5.8.2
jobs:
build_and_test:
runs-on: ubuntu-22.04
strategy:
matrix:
components: ['tls', 'admin', 'api', 'cli']
goos: ['linux', 'darwin', 'windows']
goarch: ['amd64', 'arm64']
steps:
########################### Checkout code ###########################
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 2
########################### Generate SHA1 commit hash ###########################
# https://newbedev.com/getting-current-branch-and-commit-hash-in-github-action
- name: Declare GIT hash and branch
id: vars
shell: bash
run: |
echo ::set-output name=RELEASE_VERSION::${GITHUB_REF#refs/*/}
echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
########################### Build osctrl ###########################
- name: Build osctrl binaries
# Build all osctrl components for linux for all archs
# Build all osctrl components for darwin for all archs
# Build osctrl cli for windows for all archs
if: matrix.goos == 'linux' || matrix.goos == 'darwin' || (matrix.goos == 'windows' && matrix.components == 'cli')
uses: ./.github/actions/build/binaries
with:
go_os: "${{ matrix.goos }}"
go_arch: "${{ matrix.goarch }}"
osctrl_component: "${{ matrix.components }}"
commit_sha: "${{ steps.vars.outputs.sha_short }}"
commit_branch: "${{ steps.vars.outputs.branch }}"
golang_version: "${{ env.GOLANG_VERSION }}"
########################### Test binaries ###########################
# - name: Run tests
# id: bin_tests
# uses: .github/actions/test/binaries
# with:
# go_os: "${{ matrix.goos }}"
# go_arch: "${{ matrix.goarch }}"
# osctrl_component: "${{ matrix.components }}"
# commit_sha: "${{ steps.vars.outputs.sha_short }}"
# commit_branch: "${{ steps.vars.outputs.branch }}"
# golang_version: "${{ env.GOLANG_VERSION }}"
create_deb_packages:
strategy:
matrix:
components: ['tls', 'admin', 'api', 'cli']
goos: ['linux']
goarch: ['amd64']
needs: [build_and_test]
runs-on: ubuntu-22.04
steps:
########################### Checkout code ###########################
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 2
########################### Generate SHA1 commit hash ###########################
# https://newbedev.com/getting-current-branch-and-commit-hash-in-github-action
- name: Declare GIT hash and branch
id: vars
shell: bash
run: |
echo ::set-output name=RELEASE_VERSION::${GITHUB_REF#refs/*/}
echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
########################### Build DEB packages ###########################
- name: Build osctrl DEB packages
uses: ./.github/actions/build/dpkg
with:
go_os: ${{ matrix.goos }}
go_arch: ${{ matrix.goarch }}
osctrl_component: ${{ matrix.components }}
commit_sha: ${{ steps.vars.outputs.sha_short }}
osquery_version: ${{ env.OSQUERY_VERSION }}
create_docker_images:
needs: [build_and_test]
runs-on: ubuntu-22.04
strategy:
matrix:
components: ['tls', 'admin', 'api', 'cli']
goos: ['linux']
goarch: ['amd64']
steps:
########################### Checkout code ###########################
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 2
########################### Generate SHA1 commit hash ###########################
# https://newbedev.com/getting-current-branch-and-commit-hash-in-github-action
- name: Declare GIT hash and branch
id: vars
shell: bash
run: |
echo ::set-output name=RELEASE_VERSION::${GITHUB_REF#refs/*/}
echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
########################### Build Docker containers ###########################
- name: Build and deploy osctrl Docker containers
uses: ./.github/actions/build/docker
with:
#### golang env vars ####
go_os: ${{ matrix.goos }}
go_arch: ${{ matrix.goarch }}
#### Build vars ####
osctrl_component: ${{ matrix.components }}
commit_sha: ${{ steps.vars.outputs.sha_short }}
docker_tag: ${{ steps.vars.outputs.sha_short }}
#### Dockerhub creds ####
docker_hub_org: ${{ secrets.DOCKER_HUB_ORG }}
docker_hub_username: ${{ secrets.DOCKER_HUB_USERNAME }}
docker_hub_access_token: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}