diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0399bd2f3..3b3e954c7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,8 +14,16 @@ variables: tests: "NadekoBot.Tests" LINUX_X64_OUTPUT_DIR: "nadekobot-linux-x64" LINUX_X64_RELEASE: "$CI_COMMIT_TAG-linux-x64-build.tar" + LINUX_ARM64_OUTPUT_DIR: "nadekobot-linux-arm64" + LINUX_ARM64_RELEASE: "$CI_COMMIT_TAG-linux-arm64-build.tar" + MACOS_X64_OUTPUT_DIR: "nadekobot-osx-x64" + MACOS_X64_RELEASE: "$CI_COMMIT_TAG-osx-x64-build.tar" + MACOS_ARM64_OUTPUT_DIR: "nadekobot-osx-arm64" + MACOS_ARM64_RELEASE: "$CI_COMMIT_TAG-osx-arm64-build.tar" WIN_X64_OUTPUT_DIR: "nadekobot-windows-x64" WIN_X64_RELEASE: "$CI_COMMIT_TAG-windows-x64-build.zip" + WIN_ARM64_OUTPUT_DIR: "nadekobot-windows-arm64" + WIN_ARM64_RELEASE: "$CI_COMMIT_TAG-windows-arm64-build.zip" PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/NadekoBot-build/${CI_COMMIT_TAG}" INSTALLER_OUTPUT_DIR: "nadeko-installers/${CI_COMMIT_TAG}" INSTALLER_FILE_NAME: "nadeko-setup-${CI_COMMIT_TAG}.exe" @@ -24,11 +32,19 @@ build: stage: build script: - "dotnet publish -c Release -r linux-x64 --self-contained -o $LINUX_X64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj" + - "dotnet publish -c Release -r linux-arm64 --self-contained -o $LINUX_ARM64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj" - "dotnet publish -c Release -r win7-x64 --self-contained -o $WIN_X64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj" + - "dotnet publish -c Release -r win7-arm64 --self-contained -o $WIN_ARM64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj" + - "dotnet publish -c Release -r macos-x64 --self-contained -o $MACOS_X64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj" + - "dotnet publish -c Release -r macos-arm64 --self-contained -o $MACOS_ARM64_OUTPUT_DIR src/NadekoBot/NadekoBot.csproj" artifacts: paths: - "$LINUX_X64_OUTPUT_DIR/" + - "$LINUX_ARM64_OUTPUT_DIR/" - "$WIN_X64_OUTPUT_DIR/" + - "$WIN_ARM64_OUTPUT_DIR/" + - "$MACOS_X64_OUTPUT_DIR/" + - "$MACOS_ARM64_OUTPUT_DIR/" upload-builds: stage: upload-builds @@ -38,12 +54,23 @@ upload-builds: script: - apk add --no-cache curl tar zip - "tar cvf $LINUX_X64_RELEASE $LINUX_X64_OUTPUT_DIR/*" + - "tar cvf $LINUX_ARM64_RELEASE $LINUX_ARM64_OUTPUT_DIR/*" + - "tar cvf $MACOS_X64_RELEASE $MACOS_X64_OUTPUT_DIR/*" + - "tar cvf $MACOS_ARM64_RELEASE $MACOS_ARM64_OUTPUT_DIR/*" - "zip -r $WIN_X64_RELEASE $WIN_X64_OUTPUT_DIR/*" + - "zip -r $WIN_ARM64_RELEASE $WIN_ARM64_OUTPUT_DIR/*" - | curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file $LINUX_X64_RELEASE $PACKAGE_REGISTRY_URL/$LINUX_X64_RELEASE + - | + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file $LINUX_ARM64_RELEASE $PACKAGE_REGISTRY_URL/$LINUX_ARM64_RELEASE - | curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file $WIN_X64_RELEASE $PACKAGE_REGISTRY_URL/$WIN_X64_RELEASE - + - | + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file $WIN_ARM64_RELEASE $PACKAGE_REGISTRY_URL/$WIN_ARM64_RELEASE + - | + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file $MACOS_X64_RELEASE $PACKAGE_REGISTRY_URL/$MACOS_X64_RELEASE + - | + curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file $MACOS_ARM64_RELEASE $PACKAGE_REGISTRY_URL/$MACOS_ARM64_RELEASE release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest @@ -53,7 +80,11 @@ release: - | release-cli create --name "NadekoBot v$CI_COMMIT_TAG" --description "## [Changelog](https://gitlab.com/Kwoth/nadekobot/-/blob/v4/CHANGELOG.md#$(echo "$CI_COMMIT_TAG" | sed "s/\.//g")-$(date +%d%m%Y))" --tag-name $CI_COMMIT_TAG \ --assets-link "{\"name\":\"${LINUX_X64_RELEASE}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${LINUX_X64_RELEASE}\"}" \ - --assets-link "{\"name\":\"${WIN_X64_RELEASE}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${WIN_X64_RELEASE}\"}" + --assets-link "{\"name\":\"${LINUX_ARM64_RELEASE}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${LINUX_ARM64_RELEASE}\"}" \ + --assets-link "{\"name\":\"${WIN_X64_RELEASE}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${WIN_X64_RELEASE}\"}" \ + --assets-link "{\"name\":\"${WIN_ARM64_RELEASE}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${WIN_ARM64_RELEASE}\"}" \ + --assets-link "{\"name\":\"${MACOS_X64_RELEASE}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${MACOS_X64_RELEASE}\"}" \ + --assets-link "{\"name\":\"${MACOS_ARM64_RELEASE}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${MACOS_ARM64_RELEASE}\"}" test: stage: test