fix: return InstallProfile for Type field in windows MDM profile comm… #11649
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Go Tests | |
on: | |
push: | |
branches: | |
- main | |
- patch-* | |
- prepare-* | |
paths: | |
- '**.go' | |
- 'go.mod' | |
- 'go.sum' | |
- '.github/workflows/test-go.yaml' | |
- 'server/authz/policy.rego' | |
- 'docker-compose.yml' | |
pull_request: | |
paths: | |
- '**.go' | |
- 'go.mod' | |
- 'go.sum' | |
- '.github/workflows/test-go.yaml' | |
- 'server/authz/policy.rego' | |
- 'docker-compose.yml' | |
workflow_dispatch: # Manual | |
schedule: | |
- cron: '0 4 * * *' | |
# This allows a subsequently queued workflow run to interrupt previous runs | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id}} | |
cancel-in-progress: true | |
defaults: | |
run: | |
# fail-fast using bash -eo pipefail. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference | |
shell: bash | |
permissions: | |
contents: read | |
jobs: | |
test-go: | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
go-version: ['${{ vars.GO_VERSION }}'] | |
mysql: ["mysql:5.7.21", "mysql:8.0.28"] | |
runs-on: ${{ matrix.os }} | |
env: | |
RACE_ENABLED: false | |
GO_TEST_TIMEOUT: 15m | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- name: Checkout Code | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
# Pre-starting dependencies here means they are ready to go when we need them. | |
- name: Start Infra Dependencies | |
# Use & to background this | |
run: FLEET_MYSQL_IMAGE=${{ matrix.mysql }} docker-compose -f docker-compose.yml -f docker-compose-redis-cluster.yml up -d mysql_test redis redis-cluster-1 redis-cluster-2 redis-cluster-3 redis-cluster-4 redis-cluster-5 redis-cluster-6 redis-cluster-setup minio saml_idp mailhog mailpit smtp4dev_test & | |
- name: Add TLS certificate for SMTP Tests | |
run: | | |
sudo cp tools/smtp4dev/fleet.crt /usr/local/share/ca-certificates/ | |
sudo update-ca-certificates | |
# It seems faster not to cache Go dependencies | |
- name: Install Go Dependencies | |
run: make deps-go | |
- name: Generate static files | |
run: | | |
export PATH=$PATH:~/go/bin | |
make generate-go | |
- name: Set Go race setting on schedule | |
if: github.event.schedule == '0 4 * * *' | |
run: | | |
echo "RACE_ENABLED=true" >> $GITHUB_ENV | |
echo "GO_TEST_TIMEOUT=1h" >> $GITHUB_ENV | |
- name: Wait for mysql | |
run: | | |
echo "waiting for mysql..." | |
until docker-compose exec -T mysql_test sh -c "mysql -uroot -p\"\${MYSQL_ROOT_PASSWORD}\" -e \"SELECT 1=1\" fleet" &> /dev/null; do | |
echo "." | |
sleep 1 | |
done | |
echo "mysql is ready" | |
- name: Run Go Tests | |
run: | | |
GO_TEST_EXTRA_FLAGS="-v -race=$RACE_ENABLED -timeout=$GO_TEST_TIMEOUT" \ | |
TEST_LOCK_FILE_PATH=$(pwd)/lock \ | |
NETWORK_TEST=1 \ | |
REDIS_TEST=1 \ | |
MYSQL_TEST=1 \ | |
MINIO_STORAGE_TEST=1 \ | |
SAML_IDP_TEST=1 \ | |
MAIL_TEST=1 \ | |
NETWORK_TEST_GITHUB_TOKEN=${{ secrets.FLEET_RELEASE_GITHUB_PAT }} \ | |
make test-go 2>&1 | tee /tmp/gotest.log | |
- name: Upload to Codecov | |
uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 | |
with: | |
files: coverage.txt | |
flags: backend | |
- name: Slack Notification | |
if: github.event.schedule == '0 4 * * *' && failure() | |
uses: slackapi/slack-github-action@e28cf165c92ffef168d23c5c9000cffc8a25e117 # v1.24.0 | |
with: | |
payload: | | |
{ | |
"text": "${{ job.status }}\n${{ github.event.pull_request.html_url || github.event.head.html_url }}", | |
"blocks": [ | |
{ | |
"type": "section", | |
"text": { | |
"type": "mrkdwn", | |
"text": "Go tests result: ${{ job.status }}\nhttps://github.com/fleetdm/fleet/actions/runs/${{ github.run_id }}\n${{ github.event.pull_request.html_url || github.event.head.html_url }}" | |
} | |
} | |
] | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_G_HELP_ENGINEERING_WEBHOOK_URL }} | |
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK | |
- name: Upload test log | |
if: always() | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v2 | |
with: | |
name: test-log | |
path: /tmp/gotest.log | |
if-no-files-found: error |