Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

backwards ;-) #3

Merged
merged 51 commits into from
Nov 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
9dff165
Remove cargo.lock from the release
Oct 23, 2024
5417474
Updated the changelog to make compliant
Oct 23, 2024
2fe469d
Release 0.0.1
actions-user Oct 23, 2024
7379051
Fixed incorrect reference to 'master' when I am using 'main'
Oct 23, 2024
51bb1af
Updated changelog
Oct 23, 2024
cc0e1b8
Added REUSE file so that the changelog gets the right license info
Oct 23, 2024
a0e9eba
Fixed reuse bug?
Oct 23, 2024
33d2a60
Release 0.0.2
actions-user Oct 23, 2024
62c72d2
Fixing SBOM generation
Oct 23, 2024
b72bbb9
Fixed typo
Oct 23, 2024
cf84d7a
Release 0.0.3
actions-user Oct 23, 2024
75a64c5
Adding python workflow, plus fixing issues
Oct 23, 2024
28e92f4
Adding license info
Oct 23, 2024
a135d85
Release 0.0.4
actions-user Oct 23, 2024
5c6c1f5
Trying again to fix sboms
Oct 23, 2024
bcdd864
Release 0.0.5
actions-user Oct 23, 2024
02edd9e
Separated out the build artefacts
Oct 23, 2024
0def0c2
Release 0.0.6
actions-user Oct 23, 2024
ffa628c
Fixing python build path
Oct 23, 2024
e9ce09b
Got a working set of helm charts - services install and correctly rea…
Oct 24, 2024
99e7fae
Added a healthcheck server, which is optional. Will simplify k8s heal…
Oct 24, 2024
95f5e0b
Helm updates
Oct 24, 2024
564cd4f
Release 0.0.7
actions-user Oct 24, 2024
d30cf9b
Added port names in the helm chart
Oct 24, 2024
6f1742c
Release 0.0.8
actions-user Oct 24, 2024
5d22e0c
Fixed bug in parsing bridge init options. Added in TLS support for ws…
Oct 25, 2024
0536136
Preparing for the next release
Oct 25, 2024
1d1dd4c
Release 0.0.9
actions-user Oct 25, 2024
cb93d6d
Fixed IP parsing bug
Oct 25, 2024
2d7755b
Release 0.0.10
actions-user Oct 25, 2024
e4c4943
Fix client ip parsing issue
Oct 28, 2024
f89ecac
Updated version number for next release
Oct 28, 2024
86fdd9d
Release 0.0.11
actions-user Oct 28, 2024
a8aa587
Added a keepalive message to keep the websocket open
Oct 28, 2024
31476f1
Release 0.0.12
actions-user Oct 28, 2024
2a0566d
Renamed the slurm and cluster agents to cluster and clusters.
Oct 28, 2024
b6db6a5
Added helm charts for everything and finished renaming some of the ag…
Nov 1, 2024
76565f1
Fix missing copyright info
Nov 1, 2024
841f839
Release 0.0.14
actions-user Nov 1, 2024
ff9c0eb
Fixed missing `op-platform` issue
Nov 1, 2024
f55d2a3
Release 0.0.15
actions-user Nov 1, 2024
68ab53a
Fixed attestation issues
Nov 1, 2024
7444a4a
Release 0.0.16
actions-user Nov 1, 2024
fcb0eb4
Each agent is separately released
Nov 1, 2024
c845ce2
Release 0.0.17
actions-user Nov 1, 2024
f556416
Working on getting pypi upload working...
Nov 1, 2024
7c667ee
Specified default TLS provider
Nov 5, 2024
1334be3
Release 0.0.18
actions-user Nov 5, 2024
97b5303
Making freeipa more robust to groups being deleted behind our back
Nov 7, 2024
b799206
Updated changelog and version
Nov 7, 2024
2301473
Release 0.0.19
actions-user Nov 7, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
183 changes: 162 additions & 21 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,28 +37,57 @@ jobs:
- uses: Swatinem/rust-cache@v2
- name: Build
run: cargo build --release
- name: Build op-portal OCI image
run: oci/portal/build.sh --release

- name: Build op-bridge OCI image
run: oci/bridge/build.sh --release
- name: Build op-cluster OCI image
run: oci/cluster/build.sh --release
- name: Build op-clusters OCI image
run: oci/clusters/build.sh --release
- name: Build op-filesystem OCI image
run: oci/filesystem/build.sh --release
- name: Build op-freeipa OCI image
run: oci/freeipa/build.sh --release
- name: Build op-portal OCI image
run: oci/portal/build.sh --release
- name: Build op-provider OCI image
run: oci/provider/build.sh --release

- name: Get version
id: get_version
run: |
echo version="$(target/release/op-portal --version | tail -n1 | cut -d' ' -f 2)" >> "${GITHUB_OUTPUT}"
- name: Get version for Helm
id: get_helm_version
run: |
if [[ "${{ github.ref_name }}" == "master" ]]; then
if [[ "${{ github.ref_name }}" == "main" ]]; then
echo version="${{ steps.get_version.outputs.version }}" >> "${GITHUB_OUTPUT}"
else
echo version="${{ steps.get_version.outputs.version }}.${{ github.ref_name }}" >> "${GITHUB_OUTPUT}"
fi

- name: package op-bridge helm chart
run: |
helm package helm/bridge --version "${{ steps.get_helm_version.outputs.version }}" --app-version "${{ steps.get_version.outputs.version }}"
- name: package op-cluster helm chart
run: |
helm package helm/cluster --version "${{ steps.get_helm_version.outputs.version }}" --app-version "${{ steps.get_version.outputs.version }}"
- name: package op-clusters helm chart
run: |
helm package helm/clusters --version "${{ steps.get_helm_version.outputs.version }}" --app-version "${{ steps.get_version.outputs.version }}"
- name: package op-filesystem helm chart
run: |
helm package helm/filesystem --version "${{ steps.get_helm_version.outputs.version }}" --app-version "${{ steps.get_version.outputs.version }}"
- name: package op-freeipa helm chart
run: |
helm package helm/freeipa --version "${{ steps.get_helm_version.outputs.version }}" --app-version "${{ steps.get_version.outputs.version }}"
- name: package op-portal helm chart
run: |
helm package helm/portal --version "${{ steps.get_helm_version.outputs.version }}" --app-version "${{ steps.get_version.outputs.version }}"
- name: package op-bridge helm chart
- name: package op-provider helm chart
run: |
helm package helm/bridge --version "${{ steps.get_helm_version.outputs.version }}" --app-version "${{ steps.get_version.outputs.version }}"
helm package helm/provider --version "${{ steps.get_helm_version.outputs.version }}" --app-version "${{ steps.get_version.outputs.version }}"

- name: Log in to GHCR
uses: redhat-actions/podman-login@v1
with:
Expand All @@ -69,48 +98,160 @@ jobs:
run: echo $GITHUB_TOKEN | helm registry login "ghcr.io/${{ github.repository_owner }}" --username "${{ github.actor }}" --password-stdin
env:
GITHUB_TOKEN: "${{ github.token }}"

- name: Publish op-bridge OCI image
id: push-bridge-to-ghcr
uses: redhat-actions/push-to-registry@v2
with:
image: op-bridge
tags: ${{ steps.get_version.outputs.version }}
registry: ghcr.io/${{ github.repository_owner }}
- name: Publish op-cluster OCI image
id: push-cluster-to-ghcr
uses: redhat-actions/push-to-registry@v2
with:
image: op-cluster
tags: ${{ steps.get_version.outputs.version }}
registry: ghcr.io/${{ github.repository_owner }}
- name: Publish op-clusters OCI image
id: push-clusters-to-ghcr
uses: redhat-actions/push-to-registry@v2
with:
image: op-clusters
tags: ${{ steps.get_version.outputs.version }}
registry: ghcr.io/${{ github.repository_owner }}
- name: Publish op-filesystem OCI image
id: push-filesystem-to-ghcr
uses: redhat-actions/push-to-registry@v2
with:
image: op-filesystem
tags: ${{ steps.get_version.outputs.version }}
registry: ghcr.io/${{ github.repository_owner }}
- name: Publish op-freeipa OCI image
id: push-freeipa-to-ghcr
uses: redhat-actions/push-to-registry@v2
with:
image: op-freeipa
tags: ${{ steps.get_version.outputs.version }}
registry: ghcr.io/${{ github.repository_owner }}
- name: Publish op-portal OCI image
id: push-portal-to-ghcr
uses: redhat-actions/push-to-registry@v2
with:
image: op-portal
tags: ${{ steps.get_version.outputs.version }}
registry: ghcr.io/${{ github.repository_owner }}
- name: Publish op-bridge OCI image
id: push-bridge-to-ghcr
- name: Publish op-provider OCI image
id: push-provider-to-ghcr
uses: redhat-actions/push-to-registry@v2
with:
image: op-bridge
image: op-provider
tags: ${{ steps.get_version.outputs.version }}
registry: ghcr.io/${{ github.repository_owner }}

- name: Attest op-bridge image
uses: actions/attest-build-provenance@v1
id: attest-bridge
with:
subject-name: ghcr.io/${{ github.repository_owner }}/op-bridge
subject-digest: ${{ steps.push-bridge-to-ghcr.outputs.digest }}
push-to-registry: true
- name: Attest op-cluster image
uses: actions/attest-build-provenance@v1
id: attest-cluster
with:
subject-name: ghcr.io/${{ github.repository_owner }}/op-cluster
subject-digest: ${{ steps.push-cluster-to-ghcr.outputs.digest }}
push-to-registry: true
- name: Attest op-clusters image
uses: actions/attest-build-provenance@v1
id: attest-clusters
with:
subject-name: ghcr.io/${{ github.repository_owner }}/op-clusters
subject-digest: ${{ steps.push-clusters-to-ghcr.outputs.digest }}
push-to-registry: true
- name: Attest op-filesystem image
uses: actions/attest-build-provenance@v1
id: attest-filesystem
with:
subject-name: ghcr.io/${{ github.repository_owner }}/op-filesystem
subject-digest: ${{ steps.push-filesystem-to-ghcr.outputs.digest }}
push-to-registry: true
- name: Attest op-freeipa image
uses: actions/attest-build-provenance@v1
id: attest-freeipa
with:
subject-name: ghcr.io/${{ github.repository_owner }}/op-freeipa
subject-digest: ${{ steps.push-freeipa-to-ghcr.outputs.digest }}
push-to-registry: true
- name: Attest op-portal image
uses: actions/attest-build-provenance@v1
id: attest-portal
with:
subject-name: ghcr.io/${{ github.repository }}
subject-name: ghcr.io/${{ github.repository_owner }}/op-portal
subject-digest: ${{ steps.push-portal-to-ghcr.outputs.digest }}
push-to-registry: true
- name: Attest op-bridge image
- name: Attest op-provider image
uses: actions/attest-build-provenance@v1
id: attest-bridge
id: attest-provider
with:
subject-name: ghcr.io/${{ github.repository }}
subject-digest: ${{ steps.push-bridge-to-ghcr.outputs.digest }}
subject-name: ghcr.io/${{ github.repository_owner }}/op-provider
subject-digest: ${{ steps.push-provider-to-ghcr.outputs.digest }}
push-to-registry: true
- name: Push op-portal Helm chart
run: helm push "./op-portal-${{ steps.get_helm_version.outputs.version }}.tgz" "oci://ghcr.io/${{ github.repository_owner }}/charts"
- name: Push op-bridge Helm chart
run: helm push "./op-bridge-${{ steps.get_helm_version.outputs.version }}.tgz" "oci://ghcr.io/${{ github.repository_owner }}/charts"
- name: Store build artefacts
- name: Push op-cluster Helm chart
run: helm push "./op-cluster-${{ steps.get_helm_version.outputs.version }}.tgz" "oci://ghcr.io/${{ github.repository_owner }}/charts"
- name: Push op-clusters Helm chart
run: helm push "./op-clusters-${{ steps.get_helm_version.outputs.version }}.tgz" "oci://ghcr.io/${{ github.repository_owner }}/charts"
- name: Push op-filesystem Helm chart
run: helm push "./op-filesystem-${{ steps.get_helm_version.outputs.version }}.tgz" "oci://ghcr.io/${{ github.repository_owner }}/charts"
- name: Push op-freeipa Helm chart
run: helm push "./op-freeipa-${{ steps.get_helm_version.outputs.version }}.tgz" "oci://ghcr.io/${{ github.repository_owner }}/charts"
- name: Push op-portal Helm chart
run: helm push "./op-portal-${{ steps.get_helm_version.outputs.version }}.tgz" "oci://ghcr.io/${{ github.repository_owner }}/charts"
- name: Push op-provider Helm chart
run: helm push "./op-provider-${{ steps.get_helm_version.outputs.version }}.tgz" "oci://ghcr.io/${{ github.repository_owner }}/charts"

- name: Store bridge artefact
uses: actions/upload-artifact@v4
with:
name: openportal-agents
name: op-bridge
path: |
target/release/op-portal
target/release/op-bridge
target/release/op-provider
- name: Store cluster artefact
uses: actions/upload-artifact@v4
with:
name: op-cluster
path: |
target/release/op-cluster
target/release/op-slurm
- name: Store clusters artefact
uses: actions/upload-artifact@v4
with:
name: op-clusters
path: |
target/release/op-clusters
- name: Store filesystem artefact
uses: actions/upload-artifact@v4
with:
name: op-filesystem
path: |
target/release/op-filesystem
- name: Store freeipa artefact
uses: actions/upload-artifact@v4
with:
name: op-freeipa
path: |
target/release/op-freeipa

- name: Store portal artefact
uses: actions/upload-artifact@v4
with:
name: op-portal
path: |
target/release/op-portal
- name: Store provider artefact
uses: actions/upload-artifact@v4
with:
name: op-provider
path: |
target/release/op-provider
95 changes: 95 additions & 0 deletions .github/workflows/python.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# SPDX-FileCopyrightText: © 2024 Christopher Woods <[email protected]>
# SPDX-FileCopyrightText: © 2024 Matt Williams <[email protected]>
# SPDX-License-Identifier: MIT

name: Python Module

on:
workflow_dispatch:
workflow_call:
inputs:
ref:
type: string
required: true

permissions:
contents: read

jobs:
linux:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-latest
target: x86_64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
manylinux: auto
working-directory: python
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.platform.target }}
path: python/dist

musllinux:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-latest
target: x86_64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
manylinux: musllinux_1_2
working-directory: python
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-musllinux-${{ matrix.platform.target }}
path: python/dist

release:
name: Release
runs-on: ubuntu-latest
if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
needs: [linux, musllinux]
permissions:
# Use to sign the release artifacts
id-token: write
# Used to upload release artifacts
contents: write
# Used to generate artifact attestation
attestations: write
steps:
- uses: actions/download-artifact@v4
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v1
with:
subject-path: 'wheels-*/*'
- name: Publish to PyPI
uses: PyO3/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --non-interactive --skip-existing wheels-*/*
Loading
Loading