Skip to content

Develop

Develop #2

Workflow file for this run

name: Publish new version
on:
pull_request:
types:
- closed
branches:
- master
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
cli_build_macos_precompiled_libs:
if: github.event.pull_request.merged == true
name: macOS precompiled libraries
runs-on: [ self-hosted, macOS ]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Switch to SSH
run: git remote set-url origin git@github.com:landamessenger/zstandard.git
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- name: Download source files from facebook/zstd
run: |
cd zstandard_cli
git clone https://github.com/facebook/zstd.git
mkdir src
mv zstd/lib/* src/
rm -rf zstd/
- name: List files in zstd/lib to verify
run: cd zstandard_cli && ls -R src
- name: Compile x86-x64 macos lib
run: |
cd zstandard_cli/builders/macos_intel
mkdir build && cd build
cmake ..
cmake --build . --config Release
mv libzstandard_macos.dylib ../../../lib/src/bin/libzstandard_macos_intel.dylib
cd ..
rm -rf build
- name: Compile arm64 macos lib
run: |
cd zstandard_cli/builders/macos_arm
mkdir build && cd build
cmake -DCMAKE_OSX_ARCHITECTURES=arm64 ..
cmake --build . --config Release
mv libzstandard_macos.dylib ../../../lib/src/bin/libzstandard_macos_arm.dylib
cd ..
rm -rf build
- name: Join libs
run: |
cd zstandard_cli/lib/src/bin
lipo -create -output libzstandard_macos.dylib libzstandard_macos_intel.dylib libzstandard_macos_arm.dylib
rm libzstandard_macos_arm.dylib
rm libzstandard_macos_intel.dylib
- name: Verify libs
run: |
cd zstandard_cli/lib/src/bin
lipo -info libzstandard_macos.dylib
- name: Git pull --no-ff
run: |
git pull --no-ff origin master
- name: Commit and Push Library
uses: EndBug/add-and-commit@v9
with:
add: './zstandard_cli/lib/src/bin/libzstandard_macos.dylib'
committer_name: GitHub Actions
committer_email: actions@github.com
default_author: user_info
message: 'gh-action: Add precompiled macOS libraries for x86_64 and arm64'
cli_build_linux_precompiled_libs:
if: github.event.pull_request.merged == true
name: Linux precompiled libraries
runs-on: [ self-hosted, Linux ]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Switch to SSH
run: git remote set-url origin git@github.com:landamessenger/zstandard.git
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- name: Download source files from facebook/zstd
run: |
cd zstandard_cli
git clone https://github.com/facebook/zstd.git
mkdir src
mv zstd/lib/* src/
rm -rf zstd/
- name: List files in zstd/lib to verify
run: cd zstandard_cli && ls -R src
- name: Compile x86_64 Linux lib
run: |
cd zstandard_cli/builders/linux_x64
mkdir build && cd build
cmake ..
cmake --build . --config Release
mv libzstandard_linux.so ../../../lib/src/bin/libzstandard_linux_x64.so
cd ..
rm -rf build
- name: Compile arm64 Linux lib
run: |
cd zstandard_cli/builders/linux_arm
mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../arm64-toolchain.cmake ..
cmake --build . --config Release
mv libzstandard_linux.so ../../../lib/src/bin/libzstandard_linux_arm64.so
cd ..
rm -rf build
- name: Verify Linux libs
run: |
cd zstandard_cli/lib/src/bin
file libzstandard_linux_x64.so
file libzstandard_linux_arm64.so
- name: Git pull --no-ff
run: |
git pull --no-ff origin master
- name: Commit and Push Library
uses: EndBug/add-and-commit@v9
with:
add: './zstandard_cli/lib/src/bin/'
committer_name: GitHub Actions
committer_email: actions@github.com
default_author: user_info
message: 'gh-action: Add precompiled Linux libraries for x86_64 and arm64'
cli_build_windows_precompiled_libs:
if: github.event.pull_request.merged == true
name: Windows precompiled libraries
runs-on: [ self-hosted, Windows ]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Switch to SSH
shell: cmd
run: git remote set-url origin git@github.com:landamessenger/zstandard.git
- name: Install Landa Messenger CLI
shell: cmd
run: npm install -g @landamessenger/landa-messenger-api
- name: Download source files from facebook/zstd
shell: cmd
run: |
cd zstandard_cli
git clone https://github.com/facebook/zstd.git
mkdir src
xcopy zstd\lib src\ /E /I
rmdir /S /Q zstd
- name: List files in zstd/lib to verify
shell: cmd
run: dir zstandard_cli\src /S
- name: Compile x86_64 Windows lib
shell: cmd
run: |
cd zstandard_cli/builders/windows_x64
mkdir build && cd build
cmake -G "Visual Studio 17 2022" -A x64 ..
cmake --build . --config Release
cd Release
move zstandard_windows.dll ..\..\..\..\lib\src\bin\zstandard_windows_x64.dll
cd ..
cd ..
rmdir /S /Q build
- name: Compile arm64 Windows lib
shell: cmd
run: |
cd zstandard_cli/builders/windows_arm
mkdir build && cd build
cmake -G "Visual Studio 17 2022" -A ARM64 ..
cmake --build . --config Release
cd Release
move zstandard_windows.dll ..\..\..\..\lib\src\bin\zstandard_windows_arm64.dll
cd ..
cd ..
rmdir /S /Q build
- name: Verify Windows libs architecture
shell: cmd
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" amd64
dumpbin /headers zstandard_cli/lib/src/bin/zstandard_windows_x64.dll | findstr /c:"machine"
dumpbin /headers zstandard_cli/lib/src/bin/zstandard_windows_arm64.dll | findstr /c:"machine"
- name: Git pull --no-ff
shell: cmd
run: |
git pull --no-ff origin master
- name: Commit and Push Library
uses: EndBug/add-and-commit@v9
with:
add: './zstandard_cli/lib/src/bin/'
committer_name: GitHub Actions
committer_email: actions@github.com
default_author: user_info
message: 'gh-action: Add precompiled Windows libraries for x86_64 and arm64'
update_files:
if: github.event.pull_request.merged == true
name: Update files job
runs-on: [ self-hosted, macOS ]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Switch to SSH
run: git remote set-url origin git@github.com:landamessenger/zstandard.git
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- name: Read version from pubspec.yml
working-directory: zstandard_platform_interface
id: read_version
run: |
VERSION=$(grep '^version: ' pubspec.yaml | cut -d ' ' -f 2)
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Pre check tag
id: pre_check_tag
run: |
# Checks if the tag already exists in the remote repository
if git rev-parse "v${{ env.VERSION }}" >/dev/null 2>&1; then
echo "Error: Tag v${{ env.VERSION }} already exists."
exit 1
fi
# Check if the version was found
if [ -z "${{ env.VERSION }}" ]; then
echo "Error: No version found in pubspec.yml"
exit 1
fi
- name: Copy CHANGELOG.md
run: |
cp CHANGELOG.md "zstandard_platform_interface/CHANGELOG.md"
cp CHANGELOG.md "zstandard_android/CHANGELOG.md"
cp CHANGELOG.md "zstandard_ios/CHANGELOG.md"
cp CHANGELOG.md "zstandard_macos/CHANGELOG.md"
cp CHANGELOG.md "zstandard_windows/CHANGELOG.md"
cp CHANGELOG.md "zstandard_linux/CHANGELOG.md"
cp CHANGELOG.md "zstandard_web/CHANGELOG.md"
cp CHANGELOG.md "zstandard_cli/CHANGELOG.md"
cp CHANGELOG.md "zstandard/CHANGELOG.md"
- name: Update version in zstandard_android pubspec.yaml
working-directory: zstandard_android
run: |
sed -i '' "s/^version:.*/version: ${{ env.VERSION }}/" pubspec.yaml
sed -i '' "s/^ zstandard_platform_interface: .*/ zstandard_platform_interface: ^${{ env.VERSION }}/" pubspec.yaml
- name: Update version in zstandard_ios pubspec.yaml
working-directory: zstandard_ios
run: |
sed -i '' "s/^version:.*/version: ${{ env.VERSION }}/" pubspec.yaml
sed -i '' "s/^ zstandard_platform_interface: .*/ zstandard_platform_interface: ^${{ env.VERSION }}/" pubspec.yaml
- name: Update version in zstandard_macos pubspec.yaml
working-directory: zstandard_macos
run: |
sed -i '' "s/^version:.*/version: ${{ env.VERSION }}/" pubspec.yaml
sed -i '' "s/^ zstandard_platform_interface: .*/ zstandard_platform_interface: ^${{ env.VERSION }}/" pubspec.yaml
- name: Update version in zstandard_linux pubspec.yaml
working-directory: zstandard_linux
run: |
sed -i '' "s/^version:.*/version: ${{ env.VERSION }}/" pubspec.yaml
sed -i '' "s/^ zstandard_platform_interface: .*/ zstandard_platform_interface: ^${{ env.VERSION }}/" pubspec.yaml
- name: Update version in zstandard_windows pubspec.yaml
working-directory: zstandard_windows
run: |
sed -i '' "s/^version:.*/version: ${{ env.VERSION }}/" pubspec.yaml
sed -i '' "s/^ zstandard_platform_interface: .*/ zstandard_platform_interface: ^${{ env.VERSION }}/" pubspec.yaml
- name: Update version in zstandard_web pubspec.yaml
working-directory: zstandard_web
run: |
sed -i '' "s/^version:.*/version: ${{ env.VERSION }}/" pubspec.yaml
sed -i '' "s/^ zstandard_platform_interface: .*/ zstandard_platform_interface: ^${{ env.VERSION }}/" pubspec.yaml
- name: Update version in zstandard pubspec.yaml
working-directory: zstandard
run: |
sed -i '' "s/^version:.*/version: ${{ env.VERSION }}/" pubspec.yaml
sed -i '' "s/^ zstandard_platform_interface: .*/ zstandard_platform_interface: ^${{ env.VERSION }}/" pubspec.yaml
sed -i '' "s/^ zstandard_android: .*/ zstandard_android: ^${{ env.VERSION }}/" pubspec.yaml
sed -i '' "s/^ zstandard_ios: .*/ zstandard_ios: ^${{ env.VERSION }}/" pubspec.yaml
sed -i '' "s/^ zstandard_web: .*/ zstandard_web: ^${{ env.VERSION }}/" pubspec.yaml
sed -i '' "s/^ zstandard_macos: .*/ zstandard_macos: ^${{ env.VERSION }}/" pubspec.yaml
sed -i '' "s/^ zstandard_windows: .*/ zstandard_windows: ^${{ env.VERSION }}/" pubspec.yaml
sed -i '' "s/^ zstandard_linux: .*/ zstandard_linux: ^${{ env.VERSION }}/" pubspec.yaml
- name: Update version in zstandard_cli pubspec.yaml
working-directory: zstandard_cli
run: |
sed -i '' "s/^version:.*/version: ${{ env.VERSION }}/" pubspec.yaml
- name: Git pull --no-ff
run: |
git pull --no-ff origin master
- name: Commit and Push version updates
uses: EndBug/add-and-commit@v9
with:
add: '.'
committer_name: GitHub Actions
committer_email: actions@github.com
default_author: user_info
message: 'gh-action: Bump dependencies version to ${{ env.VERSION }}'
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Update files Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/object/actions/workflows/update_files.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Update files Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/object/actions/workflows/update_files.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Update files Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/object/actions/workflows/update_files.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
tag_version:
name: Tag version and create release
runs-on: [self-hosted, macOS]
needs: [ cli_build_macos_precompiled_libs, cli_build_linux_precompiled_libs, cli_build_windows_precompiled_libs, update_files ]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- name: Read version from pubspec.yml
working-directory: zstandard_platform_interface
id: read_version
run: |
VERSION=$(grep '^version: ' pubspec.yaml | cut -d ' ' -f 2)
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Create tag
id: create_tag
run: |
# Checks if the tag already exists in the remote repository
if git rev-parse "v${{ env.VERSION }}" >/dev/null 2>&1; then
echo "Error: Tag v${{ env.VERSION }} already exists."
exit 1
fi
# Check if the version was found
if [ -z "${{ env.VERSION }}" ]; then
echo "Error: No version found in pubspec.yml"
exit 1
fi
git tag "v${{ env.VERSION }}"
git push origin "v${{ env.VERSION }}"
- name: Create release
if: ${{ steps.create_tag.outcome == 'success' }}
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ env.VERSION }}"
name: "${{ github.event.pull_request.title }}"
body: "${{ github.event.pull_request.body }}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Creation Tag Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Creation Tag Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Creation Tag Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
platform_interface_analyze:
name: Analyze Platform Interface
runs-on: [self-hosted, macOS]
needs: tag_version
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_platform_interface
run: flutter pub get
- name: Analyze check
working-directory: zstandard_platform_interface
run: flutter analyze
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Analyze - Platform Interface Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Analyze - Platform Interface Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Analyze - Platform Interface Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
platform_interface_test:
name: Test Platform Interface
runs-on: [self-hosted, macOS]
needs: tag_version
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_platform_interface
run: flutter pub get
- name: Test check
working-directory: zstandard_platform_interface
run: flutter test
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Test - Platform Interface Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Test - Platform Interface Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Test - Platform Interface Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
platform_interface_publish_dry_run:
name: Dry Run Publish Platform Interface
runs-on: [self-hosted, macOS]
needs: tag_version
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_platform_interface
run: flutter pub get
- name: Publish Dry Run
working-directory: zstandard_platform_interface
run: dart pub publish --dry-run
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Platform Interface Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Platform Interface Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Platform Interface Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
platform_interface_publish:
name: Publish Platform Interface
runs-on: [self-hosted, macOS]
needs: [platform_interface_analyze, platform_interface_test, platform_interface_publish_dry_run]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_platform_interface
run: flutter pub get
- name: Publish
working-directory: zstandard_platform_interface
run: dart pub publish -f
- name: Compress folder
run: zip -r zstandard_platform_interface.zip ./zstandard_platform_interface
- name: Upload asset to release
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ env.VERSION }}"
files: "./zstandard_platform_interface.zip"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Wait for dependency to be available
uses: nick-fields/retry@v3
with:
timeout_minutes: 120
max_attempts: 200
command: cd zstandard_android && flutter pub get
on_retry_command: |
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”„ Retry getting dependencies" \
--body "Getting dependencies. It could take a while.." \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#FFFFFFFF" \
--text_color "#DD000000"
- name: Wait a minute
run: sleep 120
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Platform Interface Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Platform Interface Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Platform Interface Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
android_analyze:
name: Analyze Android
runs-on: [self-hosted, macOS]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_android
run: flutter pub get
- name: Analyze check
working-directory: zstandard_android
run: flutter analyze
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Analyze - Android Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Analyze - Android Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Analyze - Android Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
android_test:
name: Test Android
runs-on: [self-hosted, macOS]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_android
run: flutter pub get
- name: Test check
working-directory: zstandard_android
run: flutter test
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Test - Android Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Test - Android Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Test - Android Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
android_publish_dry_run:
name: Dry Run Publish Android
runs-on: [self-hosted, macOS]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_android
run: flutter pub get
- name: Publish Dry Run
working-directory: zstandard_android
run: dart pub publish --dry-run
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Dry Run Publish - Android Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Dry Run Publish - Android Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Dry Run Publish - Android Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
android_publish:
name: Publish Android
runs-on: [self-hosted, macOS]
needs: [android_analyze, android_test, android_publish_dry_run]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_android
run: flutter pub get
- name: Publish
working-directory: zstandard_android
run: dart pub publish -f
- name: Compress folder
run: zip -r zstandard_android.zip ./zstandard_android
- name: Upload asset to release
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ env.VERSION }}"
files: "./zstandard_android.zip"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Publish - Android Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Publish - Android Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Publish - Android Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
ios_analyze:
name: Analyze iOS
runs-on: [self-hosted, macOS]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_ios
run: flutter pub get
- name: Analyze check
working-directory: zstandard_ios
run: flutter analyze
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Analyze - iOS Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Analyze - iOS Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Analyze - iOS Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
ios_test:
name: Test iOS
runs-on: [self-hosted, macOS]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_ios
run: flutter pub get
- name: Test check
working-directory: zstandard_ios
run: flutter test
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Test - iOS Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Test - iOS Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Test - iOS Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
ios_publish_dry_run:
name: Dry Run Publish iOS
runs-on: [self-hosted, macOS]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_ios
run: flutter pub get
- name: Publish Dry Run
working-directory: zstandard_ios
run: dart pub publish --dry-run
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Dry Run Publish - iOS Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Dry Run Publish - iOS Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Dry Run Publish - iOS Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
ios_publish:
name: Publish iOS
runs-on: [self-hosted, macOS]
needs: [ios_analyze, ios_test, ios_publish_dry_run]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_ios
run: flutter pub get
- name: Publish
working-directory: zstandard_ios
run: dart pub publish -f
- name: Compress folder
run: zip -r zstandard_ios.zip ./zstandard_ios
- name: Upload asset to release
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ env.VERSION }}"
files: "./zstandard_ios.zip"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Publish - iOS Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Publish - iOS Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Publish - iOS Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
macos_analyze:
name: Analyze macOS
runs-on: [self-hosted, macOS]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_macos
run: flutter pub get
- name: Analyze check
working-directory: zstandard_macos
run: flutter analyze
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Analyze - macOS Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Analyze - macOS Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Analyze - macOS Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
macos_test:
name: Test macOS
runs-on: [self-hosted, macOS]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Test check
working-directory: zstandard_macos
run: flutter test
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Test - macOS Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Test - macOS Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Test - macOS Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
macos_publish_dry_run:
name: Dry Run Publish macOS
runs-on: [self-hosted, macOS]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_macos
run: flutter pub get
- name: Publish Dry Run
working-directory: zstandard_macos
run: dart pub publish --dry-run
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Dry Run Publish - macOS Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Dry Run Publish - macOS Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Dry Run Publish - macOS Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
macos_publish:
name: Publish macOS
runs-on: [self-hosted, macOS]
needs: [macos_analyze, macos_test, macos_publish_dry_run]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_macos
run: flutter pub get
- name: Publish
working-directory: zstandard_macos
run: dart pub publish -f
- name: Compress folder
run: zip -r zstandard_macos.zip ./zstandard_macos
- name: Upload asset to release
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ env.VERSION }}"
files: "./zstandard_macos.zip"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Publish - macOS Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Publish - macOS Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Publish - macOS Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
windows_analyze:
name: Analyze Windows
runs-on: [self-hosted, Windows]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
shell: cmd
run: npm install -g @landamessenger/landa-messenger-api
- name: Get dependencies
working-directory: zstandard_windows
shell: cmd
run: flutter pub get
- name: Analyze check
working-directory: zstandard_windows
shell: cmd
run: flutter analyze
- name: Handle job completion
if: always()
shell: cmd
run: |
if "%{{ job.status }}" == "failure" (
landa-messenger-api chat-send ^
--id "%{{ secrets.CHAT_ID }}" ^
--api_key "%{{ secrets.CHAT_KEY }}" ^
--title "πŸ”΄ Analyze - Windows Failed" ^
--body "%{{ github.repository }}: Tag v%{{ env.VERSION }}" ^
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" ^
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" ^
--background_color "#55000000" ^
--text_color "#FFFFFFFF"
) else if "%{{ job.status }}" == "cancelled" (
landa-messenger-api chat-send ^
--id "%{{ secrets.CHAT_ID }}" ^
--api_key "%{{ secrets.CHAT_KEY }}" ^
--title "🟠 Analyze - Windows Canceled" ^
--body "%{{ github.repository }}: Tag v%{{ env.VERSION }}" ^
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" ^
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" ^
--background_color "#55000000" ^
--text_color "#FFFFFFFF"
) else (
landa-messenger-api chat-send ^
--id "%{{ secrets.CHAT_ID }}" ^
--api_key "%{{ secrets.CHAT_KEY }}" ^
--title "🟒 Analyze - Windows Passed" ^
--body "%{{ github.repository }}: Tag v%{{ env.VERSION }}" ^
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" ^
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" ^
--background_color "#55000000" ^
--text_color "#FFFFFFFF"
)
windows_test:
name: Test Windows
runs-on: [self-hosted, Windows]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
shell: cmd
run: npm install -g @landamessenger/landa-messenger-api
- name: Get dependencies
working-directory: zstandard_windows
shell: cmd
run: flutter pub get
#- name: Test check
# working-directory: zstandard_windows
# shell: cmd
# run: flutter test
- name: Handle job completion
if: always()
shell: cmd
run: |
if "%{{ job.status }}" == "failure" (
landa-messenger-api chat-send ^
--id "%{{ secrets.CHAT_ID }}" ^
--api_key "%{{ secrets.CHAT_KEY }}" ^
--title "πŸ”΄ Test - Windows Failed" ^
--body "%{{ github.repository }}: Tag v%{{ env.VERSION }}" ^
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" ^
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" ^
--background_color "#55000000" ^
--text_color "#FFFFFFFF"
) else if "%{{ job.status }}" == "cancelled" (
landa-messenger-api chat-send ^
--id "%{{ secrets.CHAT_ID }}" ^
--api_key "%{{ secrets.CHAT_KEY }}" ^
--title "🟠 Test - Windows Canceled" ^
--body "%{{ github.repository }}: Tag v%{{ env.VERSION }}" ^
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" ^
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" ^
--background_color "#55000000" ^
--text_color "#FFFFFFFF"
) else (
landa-messenger-api chat-send ^
--id "%{{ secrets.CHAT_ID }}" ^
--api_key "%{{ secrets.CHAT_KEY }}" ^
--title "🟒 Test - Windows Passed" ^
--body "%{{ github.repository }}: Tag v%{{ env.VERSION }}" ^
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" ^
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" ^
--background_color "#55000000" ^
--text_color "#FFFFFFFF"
)
windows_publish_dry_run:
name: Dry Run Publish Windows
runs-on: [self-hosted, Windows]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
shell: cmd
run: npm install -g @landamessenger/landa-messenger-api
- name: Get dependencies
working-directory: zstandard_windows
shell: cmd
run: flutter pub get
- name: Publish Dry Run
working-directory: zstandard_windows
shell: cmd
run: dart pub publish --dry-run
- name: Handle job completion
if: always()
shell: cmd
run: |
if "%{{ job.status }}" == "failure" (
landa-messenger-api chat-send ^
--id "%{{ secrets.CHAT_ID }}" ^
--api_key "%{{ secrets.CHAT_KEY }}" ^
--title "πŸ”΄ Dry Run Publish - Windows Failed" ^
--body "%{{ github.repository }}: Tag v%{{ env.VERSION }}" ^
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" ^
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" ^
--background_color "#55000000" ^
--text_color "#FFFFFFFF"
) else if "%{{ job.status }}" == "cancelled" (
landa-messenger-api chat-send ^
--id "%{{ secrets.CHAT_ID }}" ^
--api_key "%{{ secrets.CHAT_KEY }}" ^
--title "🟠 Dry Run Publish - Windows Canceled" ^
--body "%{{ github.repository }}: Tag v%{{ env.VERSION }}" ^
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" ^
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" ^
--background_color "#55000000" ^
--text_color "#FFFFFFFF"
) else (
landa-messenger-api chat-send ^
--id "%{{ secrets.CHAT_ID }}" ^
--api_key "%{{ secrets.CHAT_KEY }}" ^
--title "🟒 Dry Run Publish - Windows Passed" ^
--body "%{{ github.repository }}: Tag v%{{ env.VERSION }}" ^
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" ^
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" ^
--background_color "#55000000" ^
--text_color "#FFFFFFFF"
)
windows_publish:
name: Publish Windows
runs-on: [self-hosted, Windows]
needs: [windows_analyze, windows_test, windows_publish_dry_run]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
shell: cmd
run: npm install -g @landamessenger/landa-messenger-api
- name: Get dependencies
working-directory: zstandard_windows
shell: cmd
run: flutter pub get
- name: Publish
working-directory: zstandard_windows
shell: cmd
run: dart pub publish -f
- name: Compress folder
shell: cmd
run: tar -a -c -f zstandard_windows.zip zstandard_windows
- name: Upload asset to release
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ env.VERSION }}"
files: "./zstandard_windows.zip"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Handle job completion
if: always()
shell: cmd
run: |
if "%{{ job.status }}" == "failure" (
landa-messenger-api chat-send ^
--id "%{{ secrets.CHAT_ID }}" ^
--api_key "%{{ secrets.CHAT_KEY }}" ^
--title "πŸ”΄ Publish - Windows Failed" ^
--body "%{{ github.repository }}: Tag v%{{ env.VERSION }}" ^
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" ^
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" ^
--background_color "#55000000" ^
--text_color "#FFFFFFFF"
) else if "%{{ job.status }}" == "cancelled" (
landa-messenger-api chat-send ^
--id "%{{ secrets.CHAT_ID }}" ^
--api_key "%{{ secrets.CHAT_KEY }}" ^
--title "🟠 Publish - Windows Canceled" ^
--body "%{{ github.repository }}: Tag v%{{ env.VERSION }}" ^
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" ^
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" ^
--background_color "#55000000" ^
--text_color "#FFFFFFFF"
) else (
landa-messenger-api chat-send ^
--id "%{{ secrets.CHAT_ID }}" ^
--api_key "%{{ secrets.CHAT_KEY }}" ^
--title "🟒 Publish - Windows Passed" ^
--body "%{{ github.repository }}: Tag v%{{ env.VERSION }}" ^
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" ^
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" ^
--background_color "#55000000" ^
--text_color "#FFFFFFFF"
)
linux_analyze:
name: Analyze Linux
runs-on: [self-hosted, Linux]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_linux
run: flutter pub get
- name: Analyze check
working-directory: zstandard_linux
run: flutter analyze
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Analyze - Linux Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Analyze - Linux Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Analyze - Linux Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
linux_test:
name: Test Linux
runs-on: [self-hosted, Linux]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_linux
run: flutter pub get
# - name: Test check
# working-directory: zstandard_linux
# run: flutter test
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Test - Linux Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Test - Linux Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Test - Linux Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
linux_publish_dry_run:
name: Dry Run Publish Linux
runs-on: [self-hosted, Linux]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_linux
run: flutter pub get
- name: Publish Dry Run
working-directory: zstandard_linux
run: dart pub publish --dry-run
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Dry Run Publish - Linux Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Dry Run Publish - Linux Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Dry Run Publish - Linux Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
linux_publish:
name: Publish Linux
runs-on: [self-hosted, Linux]
needs: [linux_analyze, linux_test, linux_publish_dry_run]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_linux
run: flutter pub get
- name: Publish
working-directory: zstandard_linux
run: dart pub publish -f
- name: Compress folder
run: zip -r zstandard_linux.zip ./zstandard_linux
- name: Upload asset to release
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ env.VERSION }}"
files: "./zstandard_linux.zip"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Publish - Linux Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Publish - Linux Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Publish - Linux Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
web_analyze:
name: Analyze Web
runs-on: [self-hosted, macOS]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_web
run: flutter pub get
- name: Analyze check
working-directory: zstandard_web
run: flutter analyze
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Analyze - Web Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Analyze - Web Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Analyze - Web Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
web_test:
name: Test Web
runs-on: [self-hosted, macOS]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_web
run: flutter pub get
- name: Test check
working-directory: zstandard_web
run: flutter test
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Test - Web Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Test - Web Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Test - Web Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
web_publish_dry_run:
name: Dry Run Publish Web
runs-on: [self-hosted, macOS]
needs: platform_interface_publish
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_web
run: flutter pub get
- name: Publish Dry Run
working-directory: zstandard_web
run: dart pub publish --dry-run
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Dry Run Publish - Web Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Dry Run Publish - Web Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Dry Run Publish - Web Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
web_publish:
name: Publish Web
runs-on: [self-hosted, macOS]
needs: [web_analyze, web_test, web_publish_dry_run]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_web
run: flutter pub get
- name: Publish
working-directory: zstandard_web
run: dart pub publish -f
- name: Compress folder
run: zip -r zstandard_web.zip ./zstandard_web
- name: Upload asset to release
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ env.VERSION }}"
files: "./zstandard_web.zip"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Publish - Web Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Publish - Web Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Publish - Web Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
cli_analyze:
name: Analyze CLI
runs-on: [self-hosted, macOS]
needs: [android_publish, ios_publish, web_publish, macos_publish, linux_publish, windows_publish]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_cli
run: dart pub get
- name: Analyze check
working-directory: zstandard_cli
run: dart analyze
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Analyze - CLI Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Analyze - CLI Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Analyze - CLI Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
cli_test:
name: Test CLI
runs-on: [self-hosted, macOS]
needs: [android_publish, ios_publish, web_publish, macos_publish, linux_publish, windows_publish]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_cli
run: dart pub get
- name: Test check
working-directory: zstandard_cli
run: dart test
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Test - CLI Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Test - CLI Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Test - CLI Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
cli_publish_dry_run:
name: Dry Run Publish CLI
runs-on: [self-hosted, macOS]
needs: [android_publish, ios_publish, web_publish, macos_publish, linux_publish, windows_publish]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_cli
run: dart pub get
- name: Publish Dry Run
working-directory: zstandard_cli
run: dart pub publish --dry-run
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Dry Run Publish - CLI Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Dry Run Publish - CLI Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Dry Run Publish - CLI Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
cli_publish:
name: Publish CLI
runs-on: [self-hosted, macOS]
needs: [cli_analyze, cli_test, cli_publish_dry_run]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard_cli
run: dart pub get
- name: Publish
working-directory: zstandard_cli
run: dart pub publish -f
- name: Compress folder
run: zip -r zstandard_cli.zip ./zstandard_cli
- name: Upload asset to release
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ env.VERSION }}"
files: "./zstandard_cli.zip"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Publish - CLI Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Publish - CLI Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Publish - CLI Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
zstandard_analyze:
name: Analyze Zstandard
runs-on: [self-hosted, macOS]
needs: [android_publish, ios_publish, web_publish, macos_publish, linux_publish, windows_publish]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Wait for dependency to be available
uses: nick-fields/retry@v3
with:
timeout_minutes: 120
max_attempts: 200
command: cd zstandard && flutter pub get
on_retry_command: |
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”„ Retry getting dependencies" \
--body "Getting dependencies. It could take a while.." \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#FFFFFFFF" \
--text_color "#DD000000"
- name: Wait a minute
run: sleep 120
- name: Analyze check
working-directory: zstandard
run: flutter analyze
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Analyze - Zstandard Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Analyze - Zstandard Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Analyze - Zstandard Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
zstandard_test:
name: Test Zstandard
runs-on: [self-hosted, macOS]
needs: [android_publish, ios_publish, web_publish, macos_publish, linux_publish, windows_publish]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Wait for dependency to be available
uses: nick-fields/retry@v3
with:
timeout_minutes: 120
max_attempts: 200
command: cd zstandard && flutter pub get
on_retry_command: |
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”„ Retry getting dependencies" \
--body "Getting dependencies. It could take a while.." \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#FFFFFFFF" \
--text_color "#DD000000"
- name: Wait a minute
run: sleep 120
- name: Test check
working-directory: zstandard
run: flutter test
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Test - Zstandard Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Test - Zstandard Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Test - Zstandard Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
zstandard_publish_dry_run:
name: Dry Run Publish Zstandard
runs-on: [self-hosted, macOS]
needs: [android_publish, ios_publish, web_publish, macos_publish, linux_publish, windows_publish]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Wait for dependency to be available
uses: nick-fields/retry@v3
with:
timeout_minutes: 120
max_attempts: 200
command: cd zstandard && flutter pub get
on_retry_command: |
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”„ Retry getting dependencies" \
--body "Getting dependencies. It could take a while.." \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#FFFFFFFF" \
--text_color "#DD000000"
- name: Wait a minute
run: sleep 120
- name: Publish Dry Run
working-directory: zstandard
run: dart pub publish --dry-run
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Dry Run Publish - Zstandard Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Dry Run Publish - Zstandard Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Dry Run Publish - Zstandard Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi
zstandard_publish:
name: Publish Zstandard
runs-on: [self-hosted, macOS]
needs: [zstandard_analyze, zstandard_test, zstandard_publish_dry_run]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install Landa Messenger CLI
run: npm install @landamessenger/landa-messenger-api -g
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
flutter-version: '3.24.3'
- name: Get dependencies
working-directory: zstandard
run: flutter pub get
- name: Publish
working-directory: zstandard
run: dart pub publish -f
- name: Compress folder
run: zip -r zstandard.zip ./zstandard
- name: Upload asset to release
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ env.VERSION }}"
files: "./zstandard.zip"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Handle job completion
if: always()
run: |
if [ "${{ job.status }}" == "failure" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "πŸ”΄ Publish - Zstandard Failed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
elif [ "${{ job.status }}" == "cancelled" ]; then
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟠 Publish - Zstandard Canceled" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
else
landa-messenger-api chat-send \
--id "${{ secrets.CHAT_ID }}" \
--api_key "${{ secrets.CHAT_KEY }}" \
--title "🟒 Publish - Zstandard Passed" \
--body "${{ github.repository }}: Tag v${{ env.VERSION }}" \
--url "https://github.com/landamessenger/zstandard/actions/workflows/tag_version_and_publish.yml" \
--image "https://avatars.githubusercontent.com/u/63705403?s=200&v=4" \
--background_color "#55000000" \
--text_color "#FFFFFFFF"
fi