Class

FoundryCiProvider

since: 1.2

Description [src]

abstract class Foundry.CiProvider : Foundry.Contextual
  implements Json.Serializable {
  /* No available fields */
}

Extension point for continuous integration implementations.

Providers discover pipelines for a project and create asynchronous FoundryCiRun objects for jobs and interactive job shells. Provider implementations should perform blocking work in fibers on a worker scheduler and use libdex asynchronous I/O helpers where available.

Loading a provider must remain passive. Providers should defer pipeline discovery and remote access until foundry_ci_provider_list_pipelines() is called by an explicit consumer action.

Available since: 1.2

Implements

Instance methods

foundry_ci_provider_invalidate

Notifies the CI manager that the provider’s pipelines have changed.

since: 1.2

foundry_ci_provider_list_pipelines

Lists the pipelines available for the current project.

since: 1.2

foundry_ci_provider_run

Starts a local pipeline run. If job_ids is NULL or empty, the provider runs the jobs selected by its pipeline rules. The run is exposed through the context’s FoundryOperationManager until it completes or is cancelled.

since: 1.2

foundry_ci_provider_run_shell

Starts an interactive shell using the job’s local execution environment. The standard file descriptors in options are borrowed for the duration of the run.

since: 1.2

Methods inherited from FoundryContextual (4)
foundry_contextual_acquire

This method provides a checked way to get a context for the contextual.

since: 1.1

foundry_contextual_dup_context

Gets the FoundryContext that self is a part of while safely increasing the reference count of the resulting FoundryContext by 1.

foundry_contextual_inhibit

Creates a new FoundryInhibitor that will keep the FoundryContext alive and prevent shutdown until foundry_inhibitor_uninhibit() is called or the FoundryInhibitor is finalized, whichever comes first.

foundry_contextual_log
No description available.

Methods inherited from GObject (43)

Please see GObject for a full list of methods.

Methods inherited from JsonSerializable (8)
json_serializable_default_deserialize_property

Calls the default implementation of the Json.SerializableIface.deserialize_property virtual function.

json_serializable_default_serialize_property

Calls the default implementation of the Json.SerializableIface.serialize_property virtual function.

json_serializable_deserialize_property

Asks a JsonSerializable implementation to deserialize the property contained inside property_node and place its value into value.

json_serializable_find_property

Calls the Json.SerializableIface.find_property implementation on the JsonSerializable instance, which will return the property description for the given name.

json_serializable_get_property

Calls the Json.SerializableIface.get_property implementation on the JsonSerializable instance, which will get the value of the given property.

json_serializable_list_properties

Calls the Json.SerializableIface.list_properties implementation on the JsonSerializable instance, which will return the list of serializable properties.

json_serializable_serialize_property

Asks a JsonSerializable implementation to serialize an object property into a JSON node.

json_serializable_set_property

Calls the Json.SerializableIface.set_property implementation on the JsonSerializable instance, which will set the property with the given value.

Properties

Properties inherited from FoundryContextual (1)
Foundry.Contextual:context
No description available.

Signals

Foundry.CiProvider::invalidated

Emitted when the provider’s available pipelines have changed.

since: 1.2

Signals inherited from GObject (1)
GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

Class structure

struct FoundryCiProviderClass {
  FoundryContextualClass parent_class;
  DexFuture* (* load) (
    FoundryCiProvider* self
  );
  DexFuture* (* unload) (
    FoundryCiProvider* self
  );
  DexFuture* (* list_pipelines) (
    FoundryCiProvider* self
  );
  DexFuture* (* run) (
    FoundryCiProvider* self,
    FoundryCiPipeline* pipeline,
    const char* const* job_ids,
    FoundryCiRunOptions* options
  );
  DexFuture* (* run_shell) (
    FoundryCiProvider* self,
    FoundryCiJob* job,
    FoundryCiRunOptions* options
  );
  
}

No description available.

Class members
parent_class: FoundryContextualClass

No description available.

load: DexFuture* (* load) ( FoundryCiProvider* self )

No description available.

unload: DexFuture* (* unload) ( FoundryCiProvider* self )

No description available.

list_pipelines: DexFuture* (* list_pipelines) ( FoundryCiProvider* self )

No description available.

run: DexFuture* (* run) ( FoundryCiProvider* self, FoundryCiPipeline* pipeline, const char* const* job_ids, FoundryCiRunOptions* options )

No description available.

run_shell: DexFuture* (* run_shell) ( FoundryCiProvider* self, FoundryCiJob* job, FoundryCiRunOptions* options )

No description available.

Virtual methods

Foundry.CiProviderClass.list_pipelines

Lists the pipelines available for the current project.

since: 1.2

Foundry.CiProviderClass.load
No description available.

Foundry.CiProviderClass.run

Starts a local pipeline run. If job_ids is NULL or empty, the provider runs the jobs selected by its pipeline rules. The run is exposed through the context’s FoundryOperationManager until it completes or is cancelled.

since: 1.2

Foundry.CiProviderClass.run_shell

Starts an interactive shell using the job’s local execution environment. The standard file descriptors in options are borrowed for the duration of the run.

since: 1.2

Foundry.CiProviderClass.unload
No description available.