Skip to content
This repository has been archived by the owner on Sep 6, 2024. It is now read-only.

Build

Build #123

Workflow file for this run

---
# Build the MSI installer.
name: Build
on:
push:
branches:
- master
pull_request: null
workflow_dispatch:
inputs:
tag:
description: Docker tag to use as base
default: latest
required: true
pwd:
description: Certificate password
default: pwd
required: true
concurrency:
group: build-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true
jobs:
get-docker-tag:
name: Get Docker Tag
outputs:
tag: ${{ steps.prepare.outputs.tag }}
runs-on: ubuntu-latest
steps:
- name: Prepare Docker Tag
id: prepare
run: |
if [ "${{ github.event_name }}" = 'workflow_dispatch' ]; then
echo "tag=${{ github.event.inputs.tag }}" >> "${GITHUB_OUTPUT}"
else
echo "tag=latest" >> "${GITHUB_OUTPUT}"
fi
prepare-tarball:
name: Prepare Tarball
needs:
- get-docker-tag
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v4
- name: Generate Tarball
id: generate
run: sh src/docker_image_to_wsl_tar.sh "${{ needs.get-docker-tag.outputs.tag }}"
- name: Store Tarball
id: store
uses: actions/upload-artifact@v3
with:
name: netdata-tarball
path: netdata.tar
build-msi:
name: Build MSI
needs:
- prepare-tarball
- get-netdata-version
runs-on: windows-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v4
- name: Prepare Tools
id: prepare
run: choco install wixtoolset
- name: Fetch Tarball
id: fetch
uses: actions/download-artifact@v3
with:
name: netdata-tarball
path: src/
- name: Build MSI
id: build
working-directory: src
shell: pwsh
env:
P12BASE64: ${{ secrets.NETDATA_CLOUD_KEY_P12_BASE64 }}
run: |
& "C:\Program Files (x86)\WiX Toolset v3.11\bin\candle.exe" -dProductVersion="${{ needs.get-netdata-version.outputs.versionwix }}" -nologo .\netdata.wxs -v -out .\netdata.wixobj
& "C:\Program Files (x86)\WiX Toolset v3.11\bin\light.exe" .\netdata.wixobj -spdb -v -out .\netdata.msi
[System.IO.File]::WriteAllBytes('netdata.cloud.key.p12', [System.Convert]::FromBase64String($Env:P12BASE64))
& .\signtool.exe sign /f netdata.cloud.key.p12 /p '${{ github.event.inputs.pwd }}' .\netdata.msi
dir .\
- name: Upload MSI
id: upload
uses: actions/upload-artifact@v3
with:
name: netdata-msi
path: src/netdata.msi
prepare-release-tag:
name: Prepare Release Tag
if: github.event_name == 'workflow_dispatch'
outputs:
tag: ${{ steps.tag.outputs.tag }}
runs-on: ubuntu-latest
steps:
- name: Create Release Tag
id: tag
run: echo "tag=$(date +%F_%T | tr -d ':-_')" >> "${GITHUB_OUTPUT}"
get-netdata-version:
name: Get Netdata Version
if: github.event_name == 'workflow_dispatch'
outputs:
version: ${{ steps.get-version.outputs.version }}
versionwix: ${{ steps.get-version-for-wix.outputs.versionwix }}
needs:
- get-docker-tag
runs-on: ubuntu-latest
steps:
- name: Fetch Image
id: fetch
run: docker pull "netdata/netdata:${{ needs.get-docker-tag.outputs.tag }}"
- name: Get Version
id: get-version
run: |
echo "version=$(podman run -it --rm --entrypoint /usr/sbin/netdata netdata/netdata -V 2>/dev/null | cut -f 2 -d ' ')" >> "${GITHUB_OUTPUT}"
- name: Get Version for WiX
id: get-version-for-wix
run: |
echo "versionwix=$(podman run -it --rm --entrypoint /usr/sbin/netdata netdata/netdata -V 2>/dev/null | cut -f 2 -d ' ' | cut -f 2 -d 'v' | cut -f 1 -d '-')" >> "${GITHUB_OUTPUT}"
release:
name: Create Release
if: github.event_name == 'workflow_dispatch'
needs:
- build-msi
- prepare-release-tag
- get-netdata-version
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v4
- name: Fetch MSI
id: fetch
uses: actions/download-artifact@v3
with:
name: netdata-msi
- name: Create Release
id: release
uses: ncipollo/release-action@v1
with:
allowUpdates: false
artifactErrorsFailBuild: true
artifacts: 'netdata.msi'
body: With Netdata ${{ needs.get-netdata-version.outputs.version }}.
commit: master
tag: ${{ needs.prepare-release-tag.outputs.tag }}
token: ${{ secrets.NETDATABOT_GITHUB_TOKEN }}