- Определение CI (Continuous Integration):
- Что такое непрерывная интеграция.
- Цель: автоматизация сборки, тестирования и линтинга для уменьшения влияния человеческого фактора.
- Определение CD (Continuous Deployment/Delivery):
- Различие между Continuous Deployment и Continuous Delivery.
- Особенности мобильной разработки: обязательное ревью в магазинах приложений.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import ( | |
"fmt" | |
"io/fs" | |
"path/filepath" | |
"strings" | |
"github.com/testcontainers/testcontainers-go" | |
) | |
// EmbedToContainerFiles converts an embedded filesystem directory to ContainerFile slice |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Set required Bitwarden item name | |
export VAULT_SECRETD_BW_ITEM="Ansible vault key" # CHANGE THIS VALUE TO NAME OF YOUR BITWARDEN PASSWORD ITEM | |
# Ansible Vault password script using vault_secretd.py daemon | |
set -euo pipefail | |
die(){ echo "ERROR: $*" >&2; exit 1; } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import okhttp3.* | |
import okhttp3.MediaType.Companion.toMediaTypeOrNull | |
import java.io.IOException | |
// Inner interceptor that simulates a failure | |
class FailingInterceptor : Interceptor { | |
override fun intercept(chain: Interceptor.Chain): Response { | |
throw IOException("Simulated network error from FailingInterceptor") | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local spaces = require("hs.spaces") | |
-- (Optional) helper to read dock position | |
local function dockOrientation() | |
local out = hs.execute("defaults read com.apple.dock orientation") | |
return out:match("^%s*(%S+)") | |
end | |
-- get the main window of an app (wait until it's ready) | |
local function getMainWindow(app) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@JvmInline | |
value class ImageId(val id: String) | |
@Preview | |
@Composable | |
fun Test() { | |
val images = emptyList<ImageId>() | |
var animatingImageId by remember { | |
mutableStateOf<ImageId?>(null) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#set($capitalizedFilename = $NAME.substring(0,1).toUpperCase() + $NAME.substring(1)) | |
#set($lowercaseFilename = $NAME.substring(0,1).toLowerCase() + $NAME.substring(1)) | |
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME}#end | |
import com.arkivanov.essenty.lifecycle.Lifecycle | |
import com.arkivanov.essenty.lifecycle.doOnDestroy | |
import com.arkivanov.mvikotlin.core.binder.BinderLifecycleMode | |
import com.arkivanov.mvikotlin.core.store.Reducer | |
import com.arkivanov.mvikotlin.core.store.SimpleBootstrapper |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
override fun onDestroy() { | |
super.onDestroy() | |
if (needCloseScope()) { | |
// Destroy this fragment with scope | |
Timber.d("Destroy UI scope: $fragmentScopeName") | |
Toothpick.closeScope(scope.name) | |
} | |
} | |
// This is android, baby! |
NewerOlder