Skip to content

chore: release 4.7.2 #85

chore: release 4.7.2

chore: release 4.7.2 #85

Workflow file for this run

name: "Create a release"
on:
push:
tags:
- '*'
env:
BUILD_TYPE: Release
SQLITE_VERSION: 3390100 # 3.39.1
jobs:
build-native:
runs-on: ${{ matrix.config.os }}
name: ${{ matrix.config.name }}
strategy:
fail-fast: false
matrix:
config:
- {
os: ubuntu-24.04, name: "Ubuntu Clang 16",
compiler: clang, compiler_version: 16,
artifact: "ubuntu-clang-16"
}
- {
os: ubuntu-24.04, name: "Ubuntu GCC 14",
compiler: gcc, compiler_version: 14,
artifact: "ubuntu-gcc-14"
}
- {
os: windows-2022, name: "Windows VS 2022",
compiler: msvc, compiler_version: 22,
artifact: "windows-msvc-22"
}
- {
os: macos-14, name: "MacOS Clang 16",
artifact: "macos-clang-16",
compiler: clang, compiler_version: 16,
}
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Setup compilers, dependencies, project and build
uses: ./.github/workflows/setup-compilers
with:
os_name: ${{ matrix.config.os }}
compiler: ${{ matrix.config.compiler }}
compiler_version: ${{ matrix.config.compiler_version }}
sanitizers: 'Off'
with_deps: true
- name: Organize files for upload
if: startsWith(matrix.config.name, 'Ubuntu') || startsWith(matrix.config.name, 'MacOS')
shell: bash
run: |
mkdir -p artifact/lib/std
cp build/arkscript artifact
cp build/bin/libArkReactor.* artifact
cp lib/*.arkm artifact/lib
cp lib/std/*.ark artifact/lib/std
rm -rf artifact/lib/std/{.git,.github,tests/__arkscript__}
- name: Organize files for upload
if: startsWith(matrix.config.name, 'Windows')
shell: bash
run: |
mkdir -p artifact/lib/std
cp build/$BUILD_TYPE/arkscript.exe artifact
cp build/$BUILD_TYPE/ArkReactor.dll artifact
cp lib/*.arkm artifact/lib
cp lib/std/*.ark artifact/lib/std
rm -rf artifact/lib/std/{.git,.github,tests/__arkscript__}
- name: Generate InnoSetup installer
if: startsWith(matrix.config.name, 'Windows')
uses: SuperFola/is-build-action@master
with:
path-to-script: 'Installer.iss'
artifact-name: 'arkscript.exe'
- name: Upload artifact
uses: actions/upload-artifact@v5
with:
name: ${{ matrix.config.artifact }}
path: artifact
retention-days: 1
build-packages:
runs-on: ubuntu-24.04
name: ${{ matrix.config.name }}
strategy:
fail-fast: false
matrix:
config:
- {
name: "Ubuntu Clang 16 - deb",
generator: "DEB"
}
- {
name: "Ubuntu Clang 16 - rpm",
generator: "RPM"
}
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Set env
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Setup compilers, dependencies, project and build
uses: ./.github/workflows/setup-compilers
with:
os_name: ubuntu-24.04
compiler: clang
compiler_version: 16
sanitizers: 'Off'
with_deps: false
distribute: 'On'
- name: Build package
shell: bash
run: |
cd build
cpack -G ${{ matrix.config.generator }}
ls packages
- name: Upload artifact
if: startsWith(matrix.config.generator, 'DEB')
uses: actions/upload-artifact@v5
with:
name: ${{ matrix.config.generator }}
path: build/packages/arkscript-${{ env.RELEASE_VERSION }}.deb
retention-days: 1
- name: Upload artifact
if: startsWith(matrix.config.generator, 'RPM')
uses: actions/upload-artifact@v5
with:
name: ${{ matrix.config.generator }}
path: build/packages/arkscript-${{ env.RELEASE_VERSION }}.rpm
retention-days: 1
release:
runs-on: ubuntu-latest
needs: [ build-native, build-packages ]
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set env
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Download artifact Linux GCC 14
uses: actions/download-artifact@v6
with:
name: ubuntu-gcc-14
path: ark-ubuntu-gcc-14
- name: Download artifact Linux Clang 16
uses: actions/download-artifact@v6
with:
name: ubuntu-clang-16
path: ark-ubuntu-clang-16
- name: Download artifact Windows MSVC 19
uses: actions/download-artifact@v6
with:
name: windows-msvc-22
path: ark-windows-msvc-22
- name: Download artifact MacOS Clang
uses: actions/download-artifact@v6
with:
name: macos-clang-16
path: ark-macos-clang-16
- name: Download artifact Windows InnoSetup installer
uses: actions/download-artifact@v6
with:
name: arkscript.exe
path: ark-windows-installer
- name: Download artifact debian package
uses: actions/download-artifact@v6
with:
name: DEB
path: DEB
- name: Download artifact rpm package
uses: actions/download-artifact@v6
with:
name: RPM
path: RPM
- name: Make ZIPs
shell: bash
run: |
for i in ark-*; do
name=`echo $i | cut -c 5-`
(cd ${i} && zip -r ../${name}.zip ./)
done
mv ubuntu-gcc-14.zip linux-gcc-14.zip
mv ubuntu-clang-16.zip linux-clang-16.zip
mv ark-windows-installer/arkscript.exe windows-installer.exe
mv DEB/arkscript-${{ env.RELEASE_VERSION }}.* .
- name: Extract release notes
id: extract-release-notes
uses: ffurrer2/extract-release-notes@cae32133495112d23e3569ad04fef240ba4e7bc8 # v2.3.0
- name: Create release
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228
id: create_release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
name: ArkScript ${{ env.RELEASE_VERSION }}
tag_name: ${{ env.RELEASE_VERSION }}
draft: true
prerelease: false
body: ${{ steps.extract-release-notes.outputs.release_notes }}
files: |
linux-gcc-14.zip
linux-clang-16.zip
windows-msvc-22.zip
windows-installer.exe
macos-clang-16.zip
arkscript-${{ env.RELEASE_VERSION }}.deb
arkscript-${{ env.RELEASE_VERSION }}.rpm
publish-to-aur:
runs-on: ubuntu-latest
needs: [ release ]
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Generate PKGBUILD
run: |
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DARK_BUILD_EXE=On
- name: Publish arkscript-bin AUR package
uses: KSXGitHub/github-actions-deploy-aur@084b0d9b15415bf9cdb65d44dad1efe37a354050
with:
pkgname: arkscript-bin
pkgbuild: ./build/packages/PKGBUILD-bin
updpkgsums: true
test: true
commit_username: ${{ secrets.AUR_USERNAME }}
commit_email: ${{ secrets.AUR_EMAIL }}
ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
commit_message: Update arkscript-bin AUR package
ssh_keyscan_types: rsa,ecdsa,ed25519
- name: Publish arkscript-src AUR package
uses: KSXGitHub/github-actions-deploy-aur@084b0d9b15415bf9cdb65d44dad1efe37a354050
with:
pkgname: arkscript-src
pkgbuild: ./build/packages/PKGBUILD-src
updpkgsums: true
test: true
commit_username: ${{ secrets.AUR_USERNAME }}
commit_email: ${{ secrets.AUR_EMAIL }}
ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
commit_message: Update arkscript-src AUR package
ssh_keyscan_types: rsa,ecdsa,ed25519