Skip to content

Simon/feat/decrypt targeted message #5184

Simon/feat/decrypt targeted message

Simon/feat/decrypt targeted message #5184

Workflow file for this run

name: 🚀 pipeline
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true
on:
push:
branches:
- main
tags:
- "v*"
pull_request:
env:
CARGO_TERM_COLOR: always
CARGO_NET_GIT_FETCH_WITH_CLI: true
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
RELEASE: 1
jobs:
#################
# Shared between JVM Linux and Android
uniffi-bindgen-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/make/setup
- uses: ./.github/actions/make/uniffi-bindgen
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
artifact-generation: ${{ vars.ARTIFACT_GENERATION }}
ffi-library-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/make/setup
- uses: ./.github/actions/make/ffi-library
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
artifact-generation: ${{ vars.ARTIFACT_GENERATION }}
ffi-library-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/make/setup
- uses: ./.github/actions/make/ffi-library
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
artifact-generation: ${{ vars.ARTIFACT_GENERATION }}
#################
# Android
build-android:
uses: ./.github/workflows/build-android.yml
bindings-android:
runs-on: ubuntu-latest
needs:
- uniffi-bindgen-linux
- ffi-library-linux
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/make/setup
- uses: ./.github/actions/make/android/bindings
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
artifact-generation: ${{ vars.ARTIFACT_GENERATION }}
package-android:
needs:
- bindings-android
- build-android
uses: ./.github/workflows/package-android.yml
test-android:
needs:
- bindings-android
- build-android
uses: ./.github/workflows/test-android.yml
#################
# JVM Darwin
build-jvm-darwin:
if: github.repository == 'wireapp/core-crypto'
runs-on: self-hosted
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/make/setup
- uses: ./.github/actions/make/jvm
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
artifact-generation: ${{ vars.ARTIFACT_GENERATION }}
#################
# JVM Linux
build-jvm-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/make/setup
- uses: ./.github/actions/make/jvm
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
artifact-generation: ${{ vars.ARTIFACT_GENERATION }}
bindings-jvm:
needs:
- uniffi-bindgen-linux
- ffi-library-linux
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/make/setup
- uses: ./.github/actions/make/bindings-kotlin-jvm
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
artifact-generation: ${{ vars.ARTIFACT_GENERATION }}
test-jvm:
needs:
- bindings-jvm
- build-jvm-linux
- build-jvm-darwin
uses: ./.github/workflows/test-jvm.yml
check-kotlin:
needs:
- bindings-jvm
- build-jvm-linux
- build-jvm-darwin
uses: ./.github/workflows/kotlin-check.yml
docs-jvm:
needs:
- bindings-jvm
- build-jvm-linux
uses: ./.github/workflows/docs-jvm.yml
check-benchmark-jvm:
needs:
- bindings-jvm
- build-jvm-linux
- build-jvm-darwin
uses: ./.github/workflows/benchmark-jvm.yml
with:
publish: false
benchmark_message_counts: "1"
benchmark_message_sizes: "16"
benchmark_user_counts: "1"
benchmark_cipher_suites: "MLS_128_DHKEMX25519_AES128GCM_SHA256_ED25519"
#################
# KMP
test-kmp:
needs:
- ffi-library-linux
- ffi-library-macos
- build-jvm-linux
- build-jvm-darwin
uses: ./.github/workflows/test-kmp.yml
#################
# iOS/Swift
build-ios:
uses: ./.github/workflows/build-ios.yml
bindings-swift:
if: github.repository == 'wireapp/core-crypto'
runs-on: self-hosted
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/make/setup
- uses: ./.github/actions/make/bindings-swift
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
artifact-generation: ${{ vars.ARTIFACT_GENERATION }}
package-ios:
needs:
- build-ios
- bindings-swift
uses: ./.github/workflows/package-ios.yml
test-ios:
needs:
- build-ios
- bindings-swift
uses: ./.github/workflows/test-ios.yml
docs-swift:
needs:
- build-ios
- bindings-swift
uses: ./.github/workflows/docs-swift.yml
#################
# Web
bindings-ts-browser:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/make/setup
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: latest
- name: build ts
uses: ./.github/actions/make/ts/browser
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
artifact-generation: ${{ vars.ARTIFACT_GENERATION }}
bindings-ts-native-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/make/setup
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: latest
- name: build ts
uses: ./.github/actions/make/ts/native
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
artifact-generation: ${{ vars.ARTIFACT_GENERATION }}
bindings-ts-native-darwin:
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/make/setup
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: latest
- name: build ts
uses: ./.github/actions/make/ts/native
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
artifact-generation: ${{ vars.ARTIFACT_GENERATION }}
test-ts-browser:
needs:
- bindings-ts-browser
uses: ./.github/workflows/test-ts-browser.yml
test-ts-native:
needs:
- bindings-ts-native-linux
uses: ./.github/workflows/test-ts-native.yml
check-ts:
needs:
- bindings-ts-browser
- bindings-ts-native-linux
uses: ./.github/workflows/check-ts.yml
docs-ts:
needs:
- bindings-ts-browser
- bindings-ts-native-linux
uses: ./.github/workflows/docs-ts.yml
check-benchmark-ts-browser:
needs:
- bindings-ts-browser
uses: ./.github/workflows/benchmark-ts-browser.yml
with:
publish: false
benchmark_message_counts: "1"
benchmark_message_sizes: "16"
benchmark_user_counts: "1"
benchmark_cipher_suites: "Mls128Dhkemx25519Aes128gcmSha256Ed25519"
check-benchmark-ts-native:
needs:
- bindings-ts-native-linux
uses: ./.github/workflows/benchmark-ts-native.yml
with:
publish: false
benchmark_message_counts: "1"
benchmark_message_sizes: "16"
benchmark_user_counts: "1"
benchmark_cipher_suites: "Mls128Dhkemx25519Aes128gcmSha256Ed25519"
#################
# Rust
docs-cc-book:
if: github.event_name != 'pull_request'
uses: ./.github/workflows/docs-cc-book.yml
docs-rust:
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: "-D warnings"
steps:
- name: checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/setup-and-cache-rust
- run: cargo doc --all --no-deps --locked
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: rust
path: target/doc
retention-days: 1
overwrite: true
include-hidden-files: true
if-no-files-found: error
#################
# Cross-platform jobs
build-interop:
if: github.repository == 'wireapp/core-crypto'
runs-on: macos-latest
steps:
# Needed for parity between github and self-hosted runner
- run: brew install make
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/make/setup
- uses: ./.github/actions/make/interop/build
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
artifact-generation: ${{ vars.ARTIFACT_GENERATION }}
e2e-interop-test:
needs:
- build-ios
- bindings-swift
- bindings-ts-browser
- bindings-android
- build-android
- build-interop
uses: ./.github/workflows/interop.yml
deploy-docs:
needs:
- docs-cc-book
- docs-rust
- docs-ts
- docs-jvm
- docs-swift
uses: ./.github/workflows/deploy-docs.yml
#################
# Publish
prepare-publish:
needs:
- package-ios
- package-android
- bindings-ts-browser
- bindings-ts-native-linux
- bindings-ts-native-darwin
- build-jvm-linux
- build-jvm-darwin
- bindings-jvm
if: github.ref_type == 'tag'
uses: ./.github/workflows/prepare-publish.yml
secrets:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
PGP_KEY_ID: ${{ secrets.PGP_KEY_ID }}
PGP_SIGNING_KEY: ${{ secrets.PGP_SIGNING_KEY }}
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
publish-jvm:
needs: prepare-publish
if: github.repository == 'wireapp/core-crypto'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: release artifact
uses: ./.github/actions/sonatype/release
with:
staging-repository-id: ${{ needs.prepare-publish.outputs.jvm_staging_repository_id }}
sonatype-username: ${{ secrets.SONATYPE_USERNAME }}
sonatype-password: ${{ secrets.SONATYPE_PASSWORD }}
pgp-key-id: ${{ secrets.PGP_KEY_ID }}
pgp-signing-key: ${{ secrets.PGP_SIGNING_KEY }}
pgp-passphrase: ${{ secrets.PGP_PASSPHRASE }}
publish-android:
needs: prepare-publish
if: github.repository == 'wireapp/core-crypto'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: release artifact
uses: ./.github/actions/sonatype/release
with:
staging-repository-id: ${{ needs.prepare-publish.outputs.android_staging_repository_id }}
sonatype-username: ${{ secrets.SONATYPE_USERNAME }}
sonatype-password: ${{ secrets.SONATYPE_PASSWORD }}
pgp-key-id: ${{ secrets.PGP_KEY_ID }}
pgp-signing-key: ${{ secrets.PGP_SIGNING_KEY }}
pgp-passphrase: ${{ secrets.PGP_PASSPHRASE }}
publish-kmp:
needs: prepare-publish
if: github.repository == 'wireapp/core-crypto'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: release artifact
uses: ./.github/actions/sonatype/release
with:
staging-repository-id: ${{ needs.prepare-publish.outputs.kmp_staging_repository_id }}
sonatype-username: ${{ secrets.SONATYPE_USERNAME }}
sonatype-password: ${{ secrets.SONATYPE_PASSWORD }}
pgp-key-id: ${{ secrets.PGP_KEY_ID }}
pgp-signing-key: ${{ secrets.PGP_SIGNING_KEY }}
pgp-passphrase: ${{ secrets.PGP_PASSPHRASE }}
publish-ios:
needs: prepare-publish
uses: ./.github/workflows/publish-swift.yml
publish-npm:
needs: prepare-publish
uses: ./.github/workflows/publish-npm.yml
permissions:
id-token: write
contents: write
with:
release: true