1
Fork 0
mirror of https://gitlab.com/Kwoth/nadekobot.git synced 2024-10-02 20:13:13 +00:00

WIP: Updated .gitlab-ci and exe_builder.iss to work with CI, allowing for automatic windows releases, testing

This commit is contained in:
Kwoth 2021-09-01 10:38:53 +02:00
parent 49a923ba95
commit ea254c2b6f
2 changed files with 46 additions and 6 deletions

View file

@ -3,8 +3,9 @@ image: mcr.microsoft.com/dotnet/sdk:5.0
stages: stages:
- build - build
- test - test
- upload - upload-builds
- release # - release
- upload-windows-updater-release
variables: variables:
project: "NadekoBot" project: "NadekoBot"
@ -14,6 +15,8 @@ variables:
WIN_X64_OUTPUT_DIR: "nadekobot-windows-x64" WIN_X64_OUTPUT_DIR: "nadekobot-windows-x64"
WIN_X64_RELEASE: "$CI_COMMIT_TAG-windows-x64-build.zip" WIN_X64_RELEASE: "$CI_COMMIT_TAG-windows-x64-build.zip"
PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/NadekoBot-build/${CI_COMMIT_TAG}" PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/NadekoBot-build/${CI_COMMIT_TAG}"
INSTALLER_OUTPUT_DIR: "~/Documents/nadeko-installers"
INSTALLER_FILE_NAME: "nadeko-setup-${CI_COMMIT_TAG}.exe"
build: build:
stage: build stage: build
@ -25,8 +28,8 @@ build:
- "$LINUX_X64_OUTPUT_DIR/" - "$LINUX_X64_OUTPUT_DIR/"
- "$WIN_X64_OUTPUT_DIR/" - "$WIN_X64_OUTPUT_DIR/"
upload: upload-builds:
stage: upload stage: upload-builds
image: alpine:latest image: alpine:latest
rules: rules:
- if: $CI_COMMIT_TAG - if: $CI_COMMIT_TAG
@ -38,6 +41,7 @@ upload:
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_X64_RELEASE $PACKAGE_REGISTRY_URL/$LINUX_X64_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_X64_RELEASE $PACKAGE_REGISTRY_URL/$WIN_X64_RELEASE
release: release:
stage: release stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest image: registry.gitlab.com/gitlab-org/release-cli:latest
@ -55,4 +59,40 @@ test:
tests_path: "src/$tests" tests_path: "src/$tests"
script: script:
- "cd $tests_path" - "cd $tests_path"
- "dotnet test" - "dotnet test"
publish-windows:
stage: publish-windows
rules:
- if: '$CI_COMMIT_TAG'
image: scottyhardy/docker-wine
before_script:
- choco install dotnet-5.0-runtime -y
- choco install dotnet-5.0-sdk -y
- choco install innosetup -y
artifacts:
paths:
- "$INSTALLER_OUTPUT_DIR/$INSTALLER_FILE_NAME"
- "$INSTALLER_OUTPUT_DIR/releases.json"
script:
- dotnet clean
- dotnet restore
- dotnet publish -c Release --runtime win7-x64 /p:Version=$CI_COMMIT_TAG src/NadekoBot
- $env:NADEKOBOT_INSTALL_VERSION = $CI_COMMIT_TAG
- iscc.exe "/O+" ".\exe_builder.iss"
- echo "{ \"VersionName\":\"$CI_COMMIT_TAG\",\"DownloadLink\":\"https:\/\/cdn.nadeko.bot\/dl\/bot\/v3\/$INSTALLER_FILE_NAME\", }" > releases.json
tags:
- windows
upload-windows-updater-release:
stage: upload-windows-updater-release
rules:
- if: '$CI_COMMIT_TAG'
image:
name: amazon/aws-cli
entrypoint: [""]
script:
- export NADEKOBOT_INSTALL_VERSION=$CI_COMMIT_TAG
- aws --version
- aws --endpoint-url $AWS_SERVICE_URL s3api put-object --bucket "$AWS_BUCKET_NAME" --key "test-dl/releases.json" --acl public-read --body "$INSTALLER_OUTPUT_DIR/releases.json"
- aws --endpoint-url $AWS_SERVICE_URL s3api put-object --bucket "$AWS_BUCKET_NAME" --key "test-dl/$INSTALLER_FILE_NAME" --acl public-read --body "$INSTALLER_OUTPUT_DIR/$INSTALLER_FILE_NAME"

View file

@ -15,7 +15,7 @@ SolidCompression=yes
UsePreviousLanguage=no UsePreviousLanguage=no
UsePreviousSetupType=no UsePreviousSetupType=no
UsePreviousAppDir=no UsePreviousAppDir=no
OutputDir=userdocs:_projekti/nadeko-installers/{#version}/ OutputDir=userdocs:nadeko-installers/{#version}/
OutputBaseFilename=nadeko-setup-{#version} OutputBaseFilename=nadeko-setup-{#version}
AppReadmeFile=https://nadeko.bot/commands AppReadmeFile=https://nadeko.bot/commands
ArchitecturesInstallIn64BitMode=x64 ArchitecturesInstallIn64BitMode=x64