Release #252
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: Release | |
on: | |
workflow_dispatch: | |
inputs: | |
integration: | |
description: 'Integration' | |
required: true | |
oec-version: | |
description: 'Version of OEC' | |
required: true | |
jobs: | |
setup: | |
name: Setup For ${{ github.event.inputs.integration }} Release | |
runs-on: ubuntu-latest | |
outputs: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
integration_name: ${{ steps.gather_params.outputs.INTEGRATION_NAME }} | |
integration_version: ${{ steps.gather_params.outputs.INTEGRATION_VERSION }} | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v2 | |
- name: Retrieve Integration Version | |
id: gather_params | |
run: | | |
echo ::set-output name=INTEGRATION_VERSION::$(jq -r --arg v "${{ github.event.inputs.integration }}" '.[$v]' release/oec-builder/oecScriptsVersion.json) | |
echo ::set-output name=INTEGRATION_NAME::$(echo "${{ github.event.inputs.integration }}" | awk '{print tolower($0)}') | |
- name: Create ${{ github.event.inputs.integration }} Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
INTEGRATION_VERSION: ${{ steps.gather_params.outputs.INTEGRATION_VERSION }} | |
INTEGRATION_NAME: ${{ github.event.inputs.integration }} | |
with: | |
tag_name: ${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}_oec-${{ github.event.inputs.oec-version }} | |
release_name: ${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}_oec-${{ github.event.inputs.oec-version }} | |
draft: true | |
linux: | |
name: Linux | |
runs-on: ubuntu-latest | |
needs: [setup] | |
env: | |
INTEGRATION_NAME: ${{ needs.setup.outputs.integration_name }} | |
INTEGRATION_VERSION: ${{ needs.setup.outputs.integration_version }} | |
INTEGRATION_FOLDER: opsgenie-${{ needs.setup.outputs.integration_name }}-${{ needs.setup.outputs.integration_version }}-linux-amd64 | |
if: github.ref == 'refs/heads/master' | |
steps: | |
- name: Set up Go 1.x | |
uses: actions/setup-go@v2 | |
with: | |
go-version: 1.15.7 | |
id: go | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v2 | |
- name: Create Output Directory | |
run: mkdir -p .release/oec-linux/${{ env.INTEGRATION_FOLDER }} | |
- name: Download Asset | |
uses: i3h/[email protected] | |
with: | |
owner: opsgenie | |
repo: oec | |
tag: ${{ github.event.inputs.oec-version }} | |
file: oec-linux-amd64-${{ github.event.inputs.oec-version }}.zip | |
- name: Extracting Linux Package | |
run: unzip -qq oec-linux-amd64-${{ github.event.inputs.oec-version }}.zip -d .release/oec-linux/${{ env.INTEGRATION_FOLDER }} | |
- name: Copy Integration Files | |
run: cp -R ${{ github.event.inputs.integration }}/. .release/oec-linux/${{ env.INTEGRATION_FOLDER }} | |
- name: Remove http script (todo remove when http version is released) | |
run: rm -f .release/oec-linux/${{ env.INTEGRATION_FOLDER }}/scripts/http.py | |
- name: Check Incoming part exists | |
id: check_files | |
uses: andstor/file-existence-action@v1 | |
with: | |
files: ".release/oec-linux/${{ env.INTEGRATION_FOLDER }}/opsgenie-${{ env.INTEGRATION_NAME }}" | |
- name: "Release Incoming Part" | |
working-directory: .release | |
if: steps.check_files.outputs.files_exists == 'true' | |
run: | | |
INTEGRATION_PATH=oec-linux/${{ env.INTEGRATION_FOLDER }}/opsgenie-${{ env.INTEGRATION_NAME }} | |
echo ${INTEGRATION_PATH} | |
go get -u github.com/alexcesaro/log && \ | |
cd ${INTEGRATION_PATH} && \ | |
GOOS=linux GOARCH=amd64 go build -o send2opsgenie send2opsgenie.go | |
- name: Compressing Linux Package | |
run: | | |
cd .release/oec-linux/ | |
zip -r opsgenie-${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}-linux-amd64.zip ./${{ env.INTEGRATION_FOLDER }} | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: Linux Artifact | |
path: .release/oec-linux/*.zip | |
- name: Upload | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.setup.outputs.upload_url }} | |
asset_path: .release/oec-linux/opsgenie-${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}-linux-amd64.zip | |
asset_name: opsgenie-${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}-linux-amd64.zip | |
asset_content_type: application/zip | |
rpm: | |
name: RPM | |
runs-on: ubuntu-latest | |
needs: [setup] | |
env: | |
INTEGRATION_NAME: ${{ needs.setup.outputs.integration_name }} | |
INTEGRATION_VERSION: ${{ needs.setup.outputs.integration_version }} | |
if: github.ref == 'refs/heads/master' | |
steps: | |
- name: Set up Go 1.x | |
uses: actions/setup-go@v2 | |
with: | |
go-version: 1.15.7 | |
id: go | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v2 | |
- name: Create Output Directory | |
run: mkdir -p .release/oec-rpm | |
- name: Download Asset | |
uses: i3h/[email protected] | |
with: | |
owner: opsgenie | |
repo: oec | |
tag: ${{ github.event.inputs.oec-version }} | |
file: oec-linux-amd64-${{ github.event.inputs.oec-version }}.zip | |
- name: Extracting Linux Package | |
run: unzip -qq oec-linux-amd64-${{ github.event.inputs.oec-version }}.zip -d .release/oec-rpm | |
- name: Copy SPEC Files | |
run: cp -R release/oec-builder/oec-rpm/. .release/oec-rpm | |
- name: Copy Integration Files | |
run: cp -R ${{ github.event.inputs.integration }}/. .release/oec-rpm/oec-scripts | |
- name: Check Incoming part exists | |
id: check_files | |
uses: andstor/file-existence-action@v1 | |
with: | |
files: ".release/oec-rpm/oec-scripts/opsgenie-${{ env.INTEGRATION_NAME }}" | |
- name: "Release Incoming Part" | |
working-directory: .release | |
if: steps.check_files.outputs.files_exists == 'true' | |
run: | | |
INTEGRATION_PATH=oec-rpm/oec-scripts/opsgenie-${INTEGRATION_NAME} | |
echo ${INTEGRATION_PATH} | |
go get -u github.com/alexcesaro/log && \ | |
cd ${INTEGRATION_PATH} && \ | |
GOOS=linux GOARCH=amd64 go build -o send2opsgenie send2opsgenie.go | |
- name: Create RPM Package | |
working-directory: .release/oec-rpm | |
run: | | |
sed -i "s|<path_of_script>|$RPM_BUILD_ROOT/home/opsgenie/oec/scripts/actionExecutor.py|" oec-scripts/conf/config.json | |
sed -i "s|<path_of_output_file_of_script>|$RPM_BUILD_ROOT/home/opsgenie/oec/output/output.txt|" oec-scripts/conf/config.json | |
sed -i "s/<local | git>/local/g" oec-scripts/conf/config.json | |
sed -i "s/%VERSION%/${INTEGRATION_VERSION}/g" SPECS/oec.spec | |
sed -i "s/%VERSION%/${INTEGRATION_VERSION}/g" SPECS/oec-rhel6.spec | |
sed -i "s/%INTEGRATION%/opsgenie-${INTEGRATION_NAME}/g" SPECS/oec.spec | |
sed -i "s/%INTEGRATION%/opsgenie-${INTEGRATION_NAME}/g" SPECS/oec-rhel6.spec | |
rpmbuild --target=x86_64 -ba SPECS/oec.spec | |
rpmbuild --target=x86_64 -ba SPECS/oec-rhel6.spec | |
- name: Move RPM Package | |
run: mv ~/rpmbuild/RPMS/x86_64/opsgenie-${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}-1.x86_64.rpm .release/oec-rpm/opsgenie-${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}.x86_64.rpm | |
- name: Move RHEL6 Package | |
run: mv ~/rpmbuild/RPMS/x86_64/opsgenie-${{ env.INTEGRATION_NAME }}-rhel6-${{ env.INTEGRATION_VERSION }}-1.x86_64.rpm .release/oec-rpm/opsgenie-${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}.rhel6.x86_64.rpm | |
- name: Upload RPM Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: RPM Artifact | |
path: .release/oec-rpm/opsgenie-${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}.x86_64.rpm | |
- name: Upload RHEL6 Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: RHEL6 Artifact | |
path: .release/oec-rpm/opsgenie-${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}.rhel6.x86_64.rpm | |
- name: Upload RPM | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.setup.outputs.upload_url }} | |
asset_path: .release/oec-rpm/opsgenie-${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}.x86_64.rpm | |
asset_name: opsgenie-${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}.x86_64.rpm | |
asset_content_type: application/octet-stream | |
- name: Upload RHEL6 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.setup.outputs.upload_url }} | |
asset_path: .release/oec-rpm/opsgenie-${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}.rhel6.x86_64.rpm | |
asset_name: opsgenie-${{ env.INTEGRATION_NAME }}-${{ env.INTEGRATION_VERSION }}.rhel6.x86_64.rpm | |
asset_content_type: application/octet-stream | |
deb: | |
name: DEB | |
runs-on: ubuntu-latest | |
needs: [setup] | |
env: | |
INTEGRATION_NAME: ${{ needs.setup.outputs.integration_name }} | |
INTEGRATION_VERSION: ${{ needs.setup.outputs.integration_version }} | |
if: github.ref == 'refs/heads/master' | |
steps: | |
- name: Set up Go 1.x | |
uses: actions/setup-go@v2 | |
with: | |
go-version: 1.15.7 | |
id: go | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v2 | |
- name: Create Output Directory | |
run: mkdir -p .release/oec-deb/usr/local/bin | |
- name: Download Asset | |
uses: i3h/[email protected] | |
with: | |
owner: opsgenie | |
repo: oec | |
tag: ${{ github.event.inputs.oec-version }} | |
file: oec-linux-amd64-${{ github.event.inputs.oec-version }}.zip | |
- name: Extracting Linux Package | |
run: unzip -qq oec-linux-amd64-${{ github.event.inputs.oec-version }}.zip -d .release/oec-deb/usr/local/bin | |
- name: Copy SPEC Files | |
run: cp -R release/oec-builder/oec-deb/. .release/oec-deb | |
- name: Create Output Directory | |
run: mkdir -p .release/oec-deb/home/opsgenie/oec | |
- name: Copy Integration Files | |
run: cp -R ${{ github.event.inputs.integration }}/. .release/oec-deb/home/opsgenie/oec | |
- name: Check Incoming part exists | |
id: check_files | |
uses: andstor/file-existence-action@v1 | |
with: | |
files: ".release/oec-deb/home/opsgenie/oec/opsgenie-${{ env.INTEGRATION_NAME }}" | |
- name: "Release Incoming Part" | |
working-directory: .release | |
if: steps.check_files.outputs.files_exists == 'true' | |
run: | | |
INTEGRATION_PATH=oec-deb/home/opsgenie/oec/opsgenie-${{ env.INTEGRATION_NAME }} | |
echo ${INTEGRATION_PATH} | |
go get -u github.com/alexcesaro/log && \ | |
cd ${INTEGRATION_PATH} && \ | |
GOOS=linux GOARCH=amd64 go build -o send2opsgenie send2opsgenie.go | |
- name: Create Deb Package | |
working-directory: .release/ | |
run: | | |
sed -i "s|<path_of_script>|/home/opsgenie/oec/scripts/actionExecutor.py|" oec-deb/home/opsgenie/oec/conf/config.json | |
sed -i "s|<path_of_output_file_of_script>|/home/opsgenie/oec/output/output.txt|" oec-deb/home/opsgenie/oec/conf/config.json | |
sed -i "s/<local | git>/local/g" oec-deb/home/opsgenie/oec/conf/config.json | |
sed -i "s/%VERSION%/${INTEGRATION_VERSION}/g" oec-deb/DEBIAN/control | |
sed -i "s/%INTEGRATION%/opsgenie-${INTEGRATION_NAME}/g" oec-deb/DEBIAN/control | |
mkdir deb-package | |
dpkg-deb -b oec-deb deb-package | |
- name: Move Deb Package | |
run: mv .release/deb-package/*.deb .release/oec-deb/opsgenie-${{ env.INTEGRATION_NAME }}_${{ env.INTEGRATION_VERSION }}_amd64.deb | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: Debian Artifact | |
path: .release/oec-deb/opsgenie-${{ env.INTEGRATION_NAME }}_${{ env.INTEGRATION_VERSION }}_amd64.deb | |
- name: Upload | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.setup.outputs.upload_url }} | |
asset_path: .release/oec-deb/opsgenie-${{ env.INTEGRATION_NAME }}_${{ env.INTEGRATION_VERSION }}_amd64.deb | |
asset_name: opsgenie-${{ env.INTEGRATION_NAME }}_${{ env.INTEGRATION_VERSION }}_amd64.deb | |
asset_content_type: application/octet-stream | |
win32: | |
name: Windows 32 | |
runs-on: ubuntu-latest | |
needs: [setup] | |
env: | |
INTEGRATION_NAME: ${{ needs.setup.outputs.integration_name }} | |
INTEGRATION_VERSION: ${{ needs.setup.outputs.integration_version }} | |
INTEGRATION_FOLDER: opsgenie-${{ needs.setup.outputs.integration_name }}-${{ needs.setup.outputs.integration_version }}-win-386 | |
if: github.ref == 'refs/heads/master' | |
steps: | |
- name: Set up Go 1.x | |
uses: actions/setup-go@v2 | |
with: | |
go-version: 1.15.7 | |
id: go | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v2 | |
- name: Create Output Directory | |
run: mkdir -p .release/oec-win32/${{ env.INTEGRATION_FOLDER }} | |
- name: Download Asset | |
uses: i3h/[email protected] | |
with: | |
owner: opsgenie | |
repo: oec | |
tag: ${{ github.event.inputs.oec-version }} | |
file: oec-win-386-${{ github.event.inputs.oec-version }}.zip | |
- name: Extracting Win32 Package | |
run: unzip -qq oec-win-386-${{ github.event.inputs.oec-version }}.zip -d .release/oec-win32/${{ env.INTEGRATION_FOLDER }} | |
- name: Copy OEC Service Conf | |
run: cp -R release/oec-builder/oec-win32/oecService.json.example .release/oec-win32/${{ env.INTEGRATION_FOLDER }} | |
- name: Copy Integration Files | |
run: cp -R ${{ github.event.inputs.integration }}/. .release/oec-win32/${{ env.INTEGRATION_FOLDER }} | |
- name: Remove http script (todo remove when http version is released) | |
run: rm -f .release/oec-win32/${{ env.INTEGRATION_FOLDER }}/scripts/http.py | |
- name: Check Incoming part exists | |
id: check_files | |
uses: andstor/file-existence-action@v1 | |
with: | |
files: ".release/oec-win32/${{ env.INTEGRATION_FOLDER }}/opsgenie-${{ env.INTEGRATION_NAME }}" | |
- name: "Release Incoming Part" | |
working-directory: .release | |
if: steps.check_files.outputs.files_exists == 'true' | |
run: | | |
INTEGRATION_PATH=oec-win32/${{ env.INTEGRATION_FOLDER }}/opsgenie-${{ env.INTEGRATION_NAME }} | |
echo ${INTEGRATION_PATH} | |
go get -u github.com/alexcesaro/log && \ | |
cd ${INTEGRATION_PATH} && \ | |
GOOS=windows GOARCH=386 go build -o send2opsgenie32.exe send2opsgenie.go | |
- name: Compressing Win32 Package | |
run: | | |
cd .release/oec-win32/ | |
zip -r ${{ env.INTEGRATION_FOLDER }}.zip ./${{ env.INTEGRATION_FOLDER }} | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: Win32 Artifact | |
path: .release/oec-win32/*.zip | |
- name: Upload | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.setup.outputs.upload_url }} | |
asset_path: .release/oec-win32/${{ env.INTEGRATION_FOLDER }}.zip | |
asset_name: ${{ env.INTEGRATION_FOLDER }}.zip | |
asset_content_type: application/zip | |
win64: | |
name: Windows 64 | |
runs-on: ubuntu-latest | |
needs: [setup] | |
env: | |
INTEGRATION_NAME: ${{ needs.setup.outputs.integration_name }} | |
INTEGRATION_VERSION: ${{ needs.setup.outputs.integration_version }} | |
INTEGRATION_FOLDER: opsgenie-${{ needs.setup.outputs.integration_name }}-${{ needs.setup.outputs.integration_version }}-win-amd64 | |
if: github.ref == 'refs/heads/master' | |
steps: | |
- name: Set up Go 1.x | |
uses: actions/setup-go@v2 | |
with: | |
go-version: 1.15.7 | |
id: go | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v2 | |
- name: Create Output Directory | |
run: mkdir -p .release/oec-win64/${{ env.INTEGRATION_FOLDER }} | |
- name: Download Asset | |
uses: i3h/[email protected] | |
with: | |
owner: opsgenie | |
repo: oec | |
tag: ${{ github.event.inputs.oec-version }} | |
file: oec-win-amd64-${{ github.event.inputs.oec-version }}.zip | |
- name: Extracting Win64 Package | |
run: unzip -qq oec-win-amd64-${{ github.event.inputs.oec-version }}.zip -d .release/oec-win64/${{ env.INTEGRATION_FOLDER }} | |
- name: Copy OEC Service Conf | |
run: cp -R release/oec-builder/oec-win64/oecService.json.example .release/oec-win64/${{ env.INTEGRATION_FOLDER }} | |
- name: Copy Integration Files | |
run: cp -R ${{ github.event.inputs.integration }}/. .release/oec-win64/${{ env.INTEGRATION_FOLDER }} | |
- name: Remove http script (todo remove when http version is released) | |
run: rm -f .release/oec-win64/${{ env.INTEGRATION_FOLDER }}/scripts/http.py | |
- name: Check Incoming part exists | |
id: check_files | |
uses: andstor/file-existence-action@v1 | |
with: | |
files: ".release/oec-win64/${{ env.INTEGRATION_FOLDER }}/opsgenie-${{ env.INTEGRATION_NAME }}" | |
- name: "Release Incoming Part" | |
working-directory: .release | |
if: steps.check_files.outputs.files_exists == 'true' | |
run: | | |
INTEGRATION_PATH=oec-win64/${{ env.INTEGRATION_FOLDER }}/opsgenie-${{ env.INTEGRATION_NAME }} | |
echo ${INTEGRATION_PATH} | |
go get -u github.com/alexcesaro/log && \ | |
cd ${INTEGRATION_PATH} && \ | |
GOOS=windows GOARCH=amd64 go build -o send2opsgenie32.exe send2opsgenie.go | |
- name: Compressing Win 64 Package | |
run: | | |
cd .release/oec-win64/ | |
zip -r ${{ env.INTEGRATION_FOLDER }}.zip ./${{ env.INTEGRATION_FOLDER }} | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: Win64 Artifact | |
path: .release/oec-win64/*.zip | |
- name: Upload | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.setup.outputs.upload_url }} | |
asset_path: .release/oec-win64/${{ env.INTEGRATION_FOLDER }}.zip | |
asset_name: ${{ env.INTEGRATION_FOLDER }}.zip | |
asset_content_type: application/zip |