mirror of
https://github.com/go-gitea/gitea.git
synced 2024-08-19 02:53:25 +02:00
Implement action artifacts server api. This change is used for supporting https://github.com/actions/upload-artifact and https://github.com/actions/download-artifact in gitea actions. It can run sample workflow from doc https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts. The api design is inspired by https://github.com/nektos/act/blob/master/pkg/artifacts/server.go and includes some changes from gitea internal structs and methods. Actions artifacts contains two parts: - Gitea server api and storage (this pr implement basic design without some complex cases supports) - Runner communicate with gitea server api (in comming) Old pr https://github.com/go-gitea/gitea/pull/22345 is outdated after actions merged. I create new pr from main branch. ![897f7694-3e0f-4f7c-bb4b-9936624ead45](https://user-images.githubusercontent.com/2142787/219382371-eb3cf810-e4e0-456b-a8ff-aecc2b1a1032.jpeg) Add artifacts list in actions workflow page.
35 lines
966 B
Go
35 lines
966 B
Go
// Copyright 2022 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package setting
|
|
|
|
import (
|
|
"code.gitea.io/gitea/modules/log"
|
|
)
|
|
|
|
// Actions settings
|
|
var (
|
|
Actions = struct {
|
|
LogStorage Storage // how the created logs should be stored
|
|
ArtifactStorage Storage // how the created artifacts should be stored
|
|
Enabled bool
|
|
DefaultActionsURL string `ini:"DEFAULT_ACTIONS_URL"`
|
|
}{
|
|
Enabled: false,
|
|
DefaultActionsURL: "https://gitea.com",
|
|
}
|
|
)
|
|
|
|
func loadActionsFrom(rootCfg ConfigProvider) {
|
|
sec := rootCfg.Section("actions")
|
|
if err := sec.MapTo(&Actions); err != nil {
|
|
log.Fatal("Failed to map Actions settings: %v", err)
|
|
}
|
|
|
|
actionsSec := rootCfg.Section("actions.artifacts")
|
|
storageType := actionsSec.Key("STORAGE_TYPE").MustString("")
|
|
|
|
Actions.LogStorage = getStorage(rootCfg, "actions_log", "", nil)
|
|
Actions.ArtifactStorage = getStorage(rootCfg, "actions_artifacts", storageType, actionsSec)
|
|
}
|