diff --git a/.github/workflows/relay.yml b/.github/workflows/relay.yml new file mode 100644 index 00000000..f3ffe223 --- /dev/null +++ b/.github/workflows/relay.yml @@ -0,0 +1,88 @@ +#Tabs not spaces, you moron :) + +name: Build nestri:relay +on: + pull_request: + paths: + - "containers/relay.Containerfile" + - ".github/workflows/relay.yml" + schedule: + - cron: 0 0 * * * # At the end of everyday + push: + branches: [main] + paths: + - "containers/relay.Containerfile" + - ".github/workflows/relay.yml" + tags: + - v*.*.* + release: + types: [created] + +env: + REGISTRY: ghcr.io + IMAGE_NAME: nestrilabs/nestri + BASE_TAG_PREFIX: relay + +jobs: + build-docker-pr: + name: Build image on PR + runs-on: ubuntu-latest + if: ${{ github.event_name == 'pull_request' }} + steps: + - + name: Checkout repo + uses: actions/checkout@v4 + - + name: Setup Docker Buildx + uses: docker/setup-buildx-action@v3 + - + name: Build Docker image + uses: docker/build-push-action@v5 + with: + file: containers/relay.Containerfile + context: ./ + push: false + load: true + tags: nestri:relay + + build-docker-main: + name: Build image on main + if: ${{ github.event_name == 'release' || (github.event_name == 'push' && github.ref == 'refs/heads/main') }} + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - + name: Checkout repo + uses: actions/checkout@v4 + - + name: Log into registry ${{ env.REGISTRY }} + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ github.token }} + - + name: Extract Container metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/${{ env.BASE_TAG_PREFIX }} + # + #tag on release, and a nightly build for 'dev' + tags: | + type=raw,value=nightly,enable={{is_default_branch}} + type=ref,event=tag + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + - + name: Build Docker image + uses: docker/build-push-action@v5 + with: + file: containers/relay.Containerfile + context: ./ + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/.github/workflows/runner.yml b/.github/workflows/runner.yml index 279a9d94..919ea91c 100644 --- a/.github/workflows/runner.yml +++ b/.github/workflows/runner.yml @@ -24,6 +24,11 @@ env: IMAGE_NAME: nestrilabs/nestri BASE_TAG_PREFIX: runner +# This makes our release ci quit prematurely +# concurrency: +# group: ci-${{ github.ref }} +# cancel-in-progress: true + jobs: build-docker-pr: name: Build image on PR @@ -44,4 +49,46 @@ jobs: context: ./ push: false load: true - tags: nestri:runner \ No newline at end of file + tags: nestri:runner + + build-docker-main: + name: Build image on main + if: ${{ github.event_name == 'release' || (github.event_name == 'push' && github.ref == 'refs/heads/main') }} + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - + name: Checkout repo + uses: actions/checkout@v4 + - + name: Log into registry ${{ env.REGISTRY }} + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ github.token }} + - + name: Extract Container metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/${{ env.BASE_TAG_PREFIX }} + # + #tag on release, and a nightly build for 'dev' + tags: | + type=raw,value=nightly,enable={{is_default_branch}} + type=ref,event=tag + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + - + name: Build Docker image + uses: docker/build-push-action@v5 + with: + file: containers/runner.Containerfile + context: ./ + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/containers/runner.Containerfile b/containers/runner.Containerfile index 0f70edcd..51ef409d 100644 --- a/containers/runner.Containerfile +++ b/containers/runner.Containerfile @@ -9,7 +9,7 @@ WORKDIR /builder/ # Grab build and rust packages # RUN pacman -Syu --noconfirm meson pkgconf cmake git gcc make rustup \ - gstreamer gst-plugins-base gst-plugins-good + gstreamer gst-plugins-base gst-plugins-good gst-plugin-rswebrtc # Setup stable rust toolchain # RUN rustup default stable @@ -44,7 +44,7 @@ RUN mkdir plugin && \ #****************************************************************************** -# runtime +# runtime #****************************************************************************** FROM ${BASE_IMAGE} AS runtime @@ -69,14 +69,14 @@ RUN pacman -Syu --noconfirm --needed \ ENV USER="nestri" \ UID=99 \ GID=100 \ - USER_PASSWORD="nestri1234" + USER_PWD="nestri1234" RUN mkdir -p /home/${USER} && \ groupadd -g ${GID} ${USER} && \ useradd -d /home/${USER} -u ${UID} -g ${GID} -s /bin/bash ${USER} && \ chown -R ${USER}:${USER} /home/${USER} && \ echo "${USER} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \ - echo "${USER}:${USER_PASSWORD}" | chpasswd + echo "${USER}:${USER_PWD}" | chpasswd # Run directory # RUN mkdir -p /run/user/${UID} && \