Skip to content

Commit

Permalink
Added compare for windows
Browse files Browse the repository at this point in the history
  • Loading branch information
MohammedSentry committed Jun 7, 2024
1 parent c441066 commit 42b883e
Showing 1 changed file with 28 additions and 111 deletions.
139 changes: 28 additions & 111 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
name: Download Artifacts from MetricsHub
name: MetricsHub Version Check

on:
push:
branches:
- main

workflow_dispatch:
inputs:
version:
Expand All @@ -13,42 +12,13 @@ on:
default: '0.9.0000-SNAPSHOT'

jobs:

sanity-check-ubuntu:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout this repository
- name: Checkout repository
uses: actions/checkout@v4

- name: Download artifacts from MetricsHub
run: |
# Define variables
OWNER="MohammedSentry"
REPO="metricshub"
BRANCH="main"
# Get the latest successful workflow run ID
WORKFLOW_RUNS=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/$OWNER/$REPO/actions/runs?branch=$BRANCH&status=completed&per_page=5")
RUN_ID=$(echo $WORKFLOW_RUNS | jq -r '.workflow_runs[] | select(.conclusion == "success") | .id' | head -n 1)
# Get the artifact download URL
ARTIFACTS_URL="https://api.github.com/repos/$OWNER/$REPO/actions/runs/$RUN_ID/artifacts"
ARTIFACTS=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" $ARTIFACTS_URL)
# Extract artifact information
ARTIFACT_ID=$(echo $ARTIFACTS | jq -r '.artifacts[0].id')
DOWNLOAD_URL="https://api.github.com/repos/$OWNER/$REPO/actions/artifacts/$ARTIFACT_ID/zip"
# Download the artifact
curl -L -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -o artifact.zip $DOWNLOAD_URL
# Unzip the artifact and extract tarball
mkdir -p artifacts
unzip artifact.zip -d artifacts
cd artifacts
tar -xzf metricshub-linux-*.tar.gz
- name: Run MetricsHub and get version
id: get_version
run: |
Expand All @@ -72,92 +42,39 @@ jobs:
exit 1
fi
shell: bash


- name: List downloaded files
run: ls -al artifacts

sanity-check-windows:
runs-on: windows-latest

steps:
- name: Checkout this repository
uses: actions/checkout@v4
- name: Checkout repository
uses: actions/checkout@v2

- name: Download artifacts from MetricsHub
shell: pwsh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Define variables
$OWNER = "MohammedSentry"
$REPO = "metricshub"
$BRANCH = "main"
# Debug - Print variables
Write-Host "Owner: $OWNER"
Write-Host "Repo: $REPO"
Write-Host "Branch: $BRANCH"
# Get the latest successful workflow run ID
$workflow_runs = Invoke-RestMethod -Headers @{ Authorization = "Bearer $env:GITHUB_TOKEN" } -Uri "https://api.github.com/repos/$OWNER/$REPO/actions/runs?branch=$BRANCH&status=completed&per_page=5"
Write-Host "Workflow runs: $($workflow_runs | ConvertTo-Json -Depth 3)"
$run_id = ($workflow_runs.workflow_runs | Where-Object { $_.conclusion -eq "success" })[0].id
# Debug - Print run_id
Write-Host "Run ID: $run_id"
# Get the artifact download URL
$artifacts_url = "https://api.github.com/repos/$OWNER/$REPO/actions/runs/$run_id/artifacts"
$artifacts = Invoke-RestMethod -Headers @{ Authorization = "Bearer $env:GITHUB_TOKEN" } -Uri $artifacts_url
# Debug - Print artifacts
Write-Host "Artifacts: $($artifacts | ConvertTo-Json -Depth 3)"
# Extract artifact information
$artifact = $artifacts.artifacts | Where-Object { $_.name -like "metricshub-windows*" } | Select-Object -First 1
if (-not $artifact) {
Write-Error "No artifact found with name starting with 'metricshub-windows'"
exit 1
}
$artifact_id = $artifact.id
$download_url = "https://api.github.com/repos/$OWNER/$REPO/actions/artifacts/$artifact_id/zip"
# Debug - Print download URL
Write-Host "Download URL: $download_url"
# Download the artifact
Invoke-WebRequest -Headers @{ Authorization = "Bearer $env:GITHUB_TOKEN" } -Uri $download_url -OutFile artifact.zip
# Unzip the artifact
mkdir artifacts
Expand-Archive artifact.zip -DestinationPath artifacts
Expand-Archive artifacts\metricshub-windows*.zip -DestinationPath artifacts
- name: List extracted files
shell: pwsh
run: Get-ChildItem -Path artifacts -Recurse
- name: Set up Java
uses: actions/setup-java@v1
with:
java-version: '17'

- name: MetricsHub version
shell: pwsh
- name: Run MetricsHub and get version
id: get_version_windows
run: |
Write-Host "Contents of artifacts directory:"
Write-Host "Attempting to find and run metricshub.exe"
# Find metricshub.exe and run it
$exe_path = Get-ChildItem -Path artifacts -Recurse -Filter metricshub.exe | Select-Object -First 1
Write-Host "Found metricshub.exe at $($exe_path.FullName)"
& $exe_path.FullName --version
- name: MetricsHub localhost collect
cd artifacts/metricshub/bin
$VERSION_OUTPUT = ./metricshub.exe --version
echo $VERSION_OUTPUT
# Extract the version number using PowerShell regex
$AGENT_VERSION = $VERSION_OUTPUT -match 'MetricsHub Agent version ([\d.-]+-SNAPSHOT)' | Out-Null; $matches[1]
echo "MetricsHub Agent version: $AGENT_VERSION"
echo "::set-output name=agent_version::$AGENT_VERSION"
shell: pwsh
run: |
Write-Host "Metrics for localhost:"
# Find metricshub.exe and run it
$exe_path = Get-ChildItem -Path artifacts -Recurse -Filter metricshub.exe | Select-Object -First 1
Write-Host "Found metricshub.exe at $($exe_path.FullName)"
& $exe_path.FullName localhost -t win --wmi --connectors Windows

- name: List downloaded files
- name: Compare versions
run: |
$INPUT_VERSION = "${{ github.event.inputs.version }}"
$AGENT_VERSION = "${{ steps.get_version_windows.outputs.agent_version }}"
if ($INPUT_VERSION -eq $AGENT_VERSION) {
echo "The input version matches the current MetricsHub Agent version."
} else {
echo "The input version does not match the current MetricsHub Agent version."
exit 1
}
shell: pwsh
run: Get-ChildItem -Path artifacts

0 comments on commit 42b883e

Please sign in to comment.