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: update version and create new release | |
on: | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- '.github/**' | |
- 'configs/**' | |
- 'config-templates/**' | |
- 'testing-configs/**' | |
- '.gitignore' | |
- 'LICENSE' | |
- 'README.md' | |
- 'version' | |
jobs: | |
update_version: | |
name: Update Version | |
runs-on: macos-latest | |
permissions: | |
contents: write # Allows pushing changes to the repository | |
issues: write # Allows creating issues | |
packages: write # Allows accessing and publishing packages | |
pull-requests: write # Allows creating and managing pull requests | |
actions: write # Allows updating GitHub Action workflows | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Increase Version | |
run: | | |
version=$(cat ./version | grep -o -e '[0-9]\{1,2\}\.[0-9]\{1,2\}\.[0-9]\{1,2\}') | |
major=$(echo "$version" | cut -d'.' -f1) | |
minor=$(echo "$version" | cut -d'.' -f2) | |
patch=$(echo "$version" | cut -d'.' -f3) | |
if [[ $patch -lt 99 ]]; then | |
((patch++)) | |
elif [[ $minor -lt 99 ]]; then | |
patch=0 | |
((minor++)) | |
else | |
patch=0 | |
minor=0 | |
((major++)) | |
fi | |
next_version="v$major.$minor.$patch" | |
echo "$next_version" >./version | |
- name: Create Github Output Env | |
id: version | |
run: | | |
version=$(cat ./version) | |
echo "VERSION=$version" >> $GITHUB_OUTPUT | |
- name: Push Change | |
run: | | |
git config --global user.name ShiranAvidov | |
git config --global user.email [email protected] | |
git add ./version | |
git commit -m "update version" | |
git push | |
outputs: | |
VERSION: ${{ steps.version.outputs.VERSION }} | |
create_release: | |
name: Create Release | |
runs-on: ubuntu-latest | |
needs: update_version | |
permissions: | |
contents: write # Allows pushing changes to the repository | |
issues: write # Allows creating issues | |
packages: write # Allows accessing and publishing packages | |
pull-requests: write # Allows creating and managing pull requests | |
actions: write # Allows updating GitHub Action workflows | |
attestations: write # Allows adding and updating artifact attestations | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Update version file | |
run: | | |
echo "${{ needs.update_version.outputs.VERSION }}" >./version | |
- name: Push tag | |
run: | | |
git tag "${{ needs.update_version.outputs.VERSION }}" | |
git push origin "${{ needs.update_version.outputs.VERSION }}" | |
- name: Install zip | |
run: | | |
sudo apt-get install zip -y | |
- name: Create assets directory | |
run : | | |
mkdir assets | |
- name: Compress Windows Files | |
run: | | |
mkdir tmp | |
cd tmp | |
cp -r ${GITHUB_WORKSPACE}/scripts/windows/. ${GITHUB_WORKSPACE}/version . | |
zip -r ${GITHUB_WORKSPACE}/assets/agent_windows.zip . | |
rm -r ./* | |
cp -r ${GITHUB_WORKSPACE}/datasources/windows/. ${GITHUB_WORKSPACE}/resources . | |
zip -r ${GITHUB_WORKSPACE}/assets/windows_kubernetes_aks.zip kubernetes/aks resources | |
zip -r ${GITHUB_WORKSPACE}/assets/windows_kubernetes_eks.zip kubernetes/eks resources | |
zip -r ${GITHUB_WORKSPACE}/assets/windows_kubernetes_gke.zip kubernetes/gke resources | |
zip -r ${GITHUB_WORKSPACE}/assets/windows_kubernetes_digitalocean.zip kubernetes/digitalocean resources | |
zip -r ${GITHUB_WORKSPACE}/assets/windows_localhost_windows.zip localhost/windows resources | |
- name: Compress Linux Files | |
run: | | |
tar -czvf assets/agent_linux.tar.gz -C scripts/linux . -C ${GITHUB_WORKSPACE} version | |
tar -czvf assets/linux_kubernetes_aks.tar.gz -C datasources/linux kubernetes/aks -C ${GITHUB_WORKSPACE} resources -C ${GITHUB_WORKSPACE} resources-linux | |
tar -czvf assets/linux_kubernetes_eks.tar.gz -C datasources/linux kubernetes/eks -C ${GITHUB_WORKSPACE} resources -C ${GITHUB_WORKSPACE} resources-linux | |
tar -czvf assets/linux_kubernetes_gke.tar.gz -C datasources/linux kubernetes/gke -C ${GITHUB_WORKSPACE} resources -C ${GITHUB_WORKSPACE} resources-linux | |
tar -czvf assets/linux_kubernetes_digitalocean.tar.gz -C datasources/linux kubernetes/digitalocean -C ${GITHUB_WORKSPACE} resources -C ${GITHUB_WORKSPACE} resources-linux | |
tar -czvf assets/linux_aws_ec2.tar.gz -C datasources/linux aws/ec2 -C ${GITHUB_WORKSPACE} resources -C ${GITHUB_WORKSPACE} resources-linux | |
tar -czvf assets/linux_localhost_linux.tar.gz -C datasources/linux localhost/linux -C ${GITHUB_WORKSPACE} resources -C ${GITHUB_WORKSPACE} resources-linux | |
- name: Compress Mac Files | |
run: | | |
tar -czvf assets/agent_mac.tar.gz -C scripts/mac . -C ${GITHUB_WORKSPACE} version | |
tar -czvf assets/mac_kubernetes_aks.tar.gz -C datasources/mac kubernetes/aks -C ${GITHUB_WORKSPACE} resources -C ${GITHUB_WORKSPACE} resources-mac | |
tar -czvf assets/mac_kubernetes_eks.tar.gz -C datasources/mac kubernetes/eks -C ${GITHUB_WORKSPACE} resources -C ${GITHUB_WORKSPACE} resources-mac | |
tar -czvf assets/mac_kubernetes_gke.tar.gz -C datasources/mac kubernetes/gke -C ${GITHUB_WORKSPACE} resources -C ${GITHUB_WORKSPACE} resources-mac | |
tar -czvf assets/mac_kubernetes_digitalocean.tar.gz -C datasources/mac kubernetes/digitalocean -C ${GITHUB_WORKSPACE} resources -C ${GITHUB_WORKSPACE} resources-mac | |
tar -czvf assets/mac_localhost_mac.tar.gz -C datasources/mac localhost/mac -C ${GITHUB_WORKSPACE} resources -C ${GITHUB_WORKSPACE} resources-mac | |
- name: Create Release | |
uses: ncipollo/release-action@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
tag: ${{ needs.update_version.outputs.VERSION }} | |
name: ${{ needs.update_version.outputs.VERSION }} | |
body: | | |
New Release ${{ needs.update_version.outputs.VERSION }} | |
artifacts: "assets/**" |