ls: Build and Publish Nightly Packages #206
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: 'ls: Build and Publish Nightly Packages' | |
| on: | |
| schedule: | |
| - cron: "0 1 * * *" | |
| workflow_dispatch: | |
| inputs: | |
| gelpkg_ref: | |
| description: "gel-pkg git ref used to build the packages" | |
| default: "master" | |
| metapkg_ref: | |
| description: "metapkg git ref used to build the packages" | |
| default: "master" | |
| push: | |
| branches: | |
| - nightly | |
| jobs: | |
| prep: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| if_linux_x86_64: ${{ steps.scm.outputs.if_linux_x86_64 }} | |
| if_linux_aarch64: ${{ steps.scm.outputs.if_linux_aarch64 }} | |
| if_linuxmusl_x86_64: ${{ steps.scm.outputs.if_linuxmusl_x86_64 }} | |
| if_linuxmusl_aarch64: ${{ steps.scm.outputs.if_linuxmusl_aarch64 }} | |
| if_macos_x86_64: ${{ steps.scm.outputs.if_macos_x86_64 }} | |
| if_macos_aarch64: ${{ steps.scm.outputs.if_macos_aarch64 }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Determine SCM revision | |
| id: scm | |
| shell: bash | |
| run: | | |
| rev=$(git rev-parse HEAD) | |
| jq_filter='.packages[] | select(.basename == "gel-ls") | select(.architecture == $ARCH) | .version_details.metadata.scm_revision | . as $rev | select(($rev != null) and ($REV | startswith($rev)))' | |
| key="linux-x86_64" | |
| val=true | |
| idx_file=x86_64-unknown-linux-gnu.nightly.json | |
| url=https://packages.edgedb.com/archive/.jsonindexes/$idx_file | |
| tmp_file="/tmp/$idx_file" | |
| if [ ! -e "$tmp_file" ]; then | |
| curl --fail -o $tmp_file -s $url || true | |
| fi | |
| if [ -e "$tmp_file" ]; then | |
| out=$(< "$tmp_file" jq -r --arg REV "$rev" --arg ARCH "x86_64" "$jq_filter") | |
| if [ -n "$out" ]; then | |
| echo "Skip rebuilding existing ${key}" | |
| val=false | |
| fi | |
| fi | |
| echo if_${key//-/_}="$val" >> $GITHUB_OUTPUT | |
| key="linux-aarch64" | |
| val=true | |
| idx_file=aarch64-unknown-linux-gnu.nightly.json | |
| url=https://packages.edgedb.com/archive/.jsonindexes/$idx_file | |
| tmp_file="/tmp/$idx_file" | |
| if [ ! -e "$tmp_file" ]; then | |
| curl --fail -o $tmp_file -s $url || true | |
| fi | |
| if [ -e "$tmp_file" ]; then | |
| out=$(< "$tmp_file" jq -r --arg REV "$rev" --arg ARCH "aarch64" "$jq_filter") | |
| if [ -n "$out" ]; then | |
| echo "Skip rebuilding existing ${key}" | |
| val=false | |
| fi | |
| fi | |
| echo if_${key//-/_}="$val" >> $GITHUB_OUTPUT | |
| key="linuxmusl-x86_64" | |
| val=true | |
| idx_file=x86_64-unknown-linux-musl.nightly.json | |
| url=https://packages.edgedb.com/archive/.jsonindexes/$idx_file | |
| tmp_file="/tmp/$idx_file" | |
| if [ ! -e "$tmp_file" ]; then | |
| curl --fail -o $tmp_file -s $url || true | |
| fi | |
| if [ -e "$tmp_file" ]; then | |
| out=$(< "$tmp_file" jq -r --arg REV "$rev" --arg ARCH "x86_64" "$jq_filter") | |
| if [ -n "$out" ]; then | |
| echo "Skip rebuilding existing ${key}" | |
| val=false | |
| fi | |
| fi | |
| echo if_${key//-/_}="$val" >> $GITHUB_OUTPUT | |
| key="linuxmusl-aarch64" | |
| val=true | |
| idx_file=aarch64-unknown-linux-musl.nightly.json | |
| url=https://packages.edgedb.com/archive/.jsonindexes/$idx_file | |
| tmp_file="/tmp/$idx_file" | |
| if [ ! -e "$tmp_file" ]; then | |
| curl --fail -o $tmp_file -s $url || true | |
| fi | |
| if [ -e "$tmp_file" ]; then | |
| out=$(< "$tmp_file" jq -r --arg REV "$rev" --arg ARCH "aarch64" "$jq_filter") | |
| if [ -n "$out" ]; then | |
| echo "Skip rebuilding existing ${key}" | |
| val=false | |
| fi | |
| fi | |
| echo if_${key//-/_}="$val" >> $GITHUB_OUTPUT | |
| key="macos-x86_64" | |
| val=true | |
| idx_file=x86_64-unknown-linux-gnu.nightly.json | |
| url=https://packages.edgedb.com/archive/.jsonindexes/$idx_file | |
| tmp_file="/tmp/$idx_file" | |
| if [ ! -e "$tmp_file" ]; then | |
| curl --fail -o $tmp_file -s $url || true | |
| fi | |
| if [ -e "$tmp_file" ]; then | |
| out=$(< "$tmp_file" jq -r --arg REV "$rev" --arg ARCH "x86_64" "$jq_filter") | |
| if [ -n "$out" ]; then | |
| echo "Skip rebuilding existing ${key}" | |
| val=false | |
| fi | |
| fi | |
| echo if_${key//-/_}="$val" >> $GITHUB_OUTPUT | |
| key="macos-aarch64" | |
| val=true | |
| idx_file=aarch64-unknown-linux-gnu.nightly.json | |
| url=https://packages.edgedb.com/archive/.jsonindexes/$idx_file | |
| tmp_file="/tmp/$idx_file" | |
| if [ ! -e "$tmp_file" ]; then | |
| curl --fail -o $tmp_file -s $url || true | |
| fi | |
| if [ -e "$tmp_file" ]; then | |
| out=$(< "$tmp_file" jq -r --arg REV "$rev" --arg ARCH "aarch64" "$jq_filter") | |
| if [ -n "$out" ]; then | |
| echo "Skip rebuilding existing ${key}" | |
| val=false | |
| fi | |
| fi | |
| echo if_${key//-/_}="$val" >> $GITHUB_OUTPUT | |
| build-linux-x86_64: | |
| runs-on: ['self-hosted', 'linux', 'x64'] | |
| needs: prep | |
| if: needs.prep.outputs.if_linux_x86_64 == 'true' | |
| steps: | |
| - name: Build | |
| uses: docker://ghcr.io/geldata/gelpkg-build-linux-x86_64:latest | |
| env: | |
| PACKAGE: "edgedbpkg.edgedb_ls:EdgeDBLanguageServer" | |
| SRC_REF: "${{ github.sha }}" | |
| PKG_REVISION: "<current-date>" | |
| PKG_SUBDIST: "nightly" | |
| PKG_PLATFORM: "linux" | |
| PKG_PLATFORM_VERSION: "x86_64" | |
| EXTRA_OPTIMIZATIONS: "true" | |
| BUILD_GENERIC: true | |
| METAPKG_GIT_CACHE: disabled | |
| GEL_PKG_REF: ${{ inputs.gelpkg_ref }} | |
| METAPKG_REF: ${{ inputs.metapkg_ref }} | |
| - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
| with: | |
| name: builds-linux-x86_64 | |
| path: artifacts/linux-x86_64 | |
| build-linux-aarch64: | |
| runs-on: ['self-hosted', 'linux', 'arm64'] | |
| needs: prep | |
| if: needs.prep.outputs.if_linux_aarch64 == 'true' | |
| steps: | |
| - name: Build | |
| uses: docker://ghcr.io/geldata/gelpkg-build-linux-aarch64:latest | |
| env: | |
| PACKAGE: "edgedbpkg.edgedb_ls:EdgeDBLanguageServer" | |
| SRC_REF: "${{ github.sha }}" | |
| PKG_REVISION: "<current-date>" | |
| PKG_SUBDIST: "nightly" | |
| PKG_PLATFORM: "linux" | |
| PKG_PLATFORM_VERSION: "aarch64" | |
| EXTRA_OPTIMIZATIONS: "true" | |
| BUILD_GENERIC: true | |
| METAPKG_GIT_CACHE: disabled | |
| GEL_PKG_REF: ${{ inputs.gelpkg_ref }} | |
| METAPKG_REF: ${{ inputs.metapkg_ref }} | |
| - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
| with: | |
| name: builds-linux-aarch64 | |
| path: artifacts/linux-aarch64 | |
| build-linuxmusl-x86_64: | |
| runs-on: ['self-hosted', 'linux', 'x64'] | |
| needs: prep | |
| if: needs.prep.outputs.if_linuxmusl_x86_64 == 'true' | |
| steps: | |
| - name: Build | |
| uses: docker://ghcr.io/geldata/gelpkg-build-linuxmusl-x86_64:latest | |
| env: | |
| PACKAGE: "edgedbpkg.edgedb_ls:EdgeDBLanguageServer" | |
| SRC_REF: "${{ github.sha }}" | |
| PKG_REVISION: "<current-date>" | |
| PKG_SUBDIST: "nightly" | |
| PKG_PLATFORM: "linux" | |
| PKG_PLATFORM_VERSION: "x86_64" | |
| EXTRA_OPTIMIZATIONS: "true" | |
| BUILD_GENERIC: true | |
| PKG_PLATFORM_LIBC: "musl" | |
| METAPKG_GIT_CACHE: disabled | |
| GEL_PKG_REF: ${{ inputs.gelpkg_ref }} | |
| METAPKG_REF: ${{ inputs.metapkg_ref }} | |
| - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
| with: | |
| name: builds-linuxmusl-x86_64 | |
| path: artifacts/linuxmusl-x86_64 | |
| build-linuxmusl-aarch64: | |
| runs-on: ['self-hosted', 'linux', 'arm64'] | |
| needs: prep | |
| if: needs.prep.outputs.if_linuxmusl_aarch64 == 'true' | |
| steps: | |
| - name: Build | |
| uses: docker://ghcr.io/geldata/gelpkg-build-linuxmusl-aarch64:latest | |
| env: | |
| PACKAGE: "edgedbpkg.edgedb_ls:EdgeDBLanguageServer" | |
| SRC_REF: "${{ github.sha }}" | |
| PKG_REVISION: "<current-date>" | |
| PKG_SUBDIST: "nightly" | |
| PKG_PLATFORM: "linux" | |
| PKG_PLATFORM_VERSION: "aarch64" | |
| EXTRA_OPTIMIZATIONS: "true" | |
| BUILD_GENERIC: true | |
| PKG_PLATFORM_LIBC: "musl" | |
| METAPKG_GIT_CACHE: disabled | |
| GEL_PKG_REF: ${{ inputs.gelpkg_ref }} | |
| METAPKG_REF: ${{ inputs.metapkg_ref }} | |
| - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
| with: | |
| name: builds-linuxmusl-aarch64 | |
| path: artifacts/linuxmusl-aarch64 | |
| build-macos-x86_64: | |
| runs-on: ['macos-13'] | |
| needs: prep | |
| if: needs.prep.outputs.if_macos_x86_64 == 'true' | |
| steps: | |
| - name: Update Homebrew before installing Rust toolchain | |
| run: | | |
| # Homebrew renamed `rustup-init` to `rustup`: | |
| # https://github.com/Homebrew/homebrew-core/pull/177840 | |
| # But the GitHub Action runner is not updated with this change yet. | |
| # This caused the later `brew update` in step `Build` to relink Rust | |
| # toolchain executables, overwriting the custom toolchain installed by | |
| # `dsherret/rust-toolchain-file`. So let's just run `brew update` early. | |
| brew update | |
| - uses: actions/checkout@v4 | |
| if: true | |
| with: | |
| sparse-checkout: | | |
| rust-toolchain.toml | |
| sparse-checkout-cone-mode: false | |
| - name: Install Rust toolchain | |
| uses: dsherret/rust-toolchain-file@v1 | |
| if: true | |
| - uses: actions/checkout@v4 | |
| with: | |
| repository: edgedb/edgedb-pkg | |
| ref: master | |
| path: edgedb-pkg | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| if: true | |
| with: | |
| python-version: "3.12" | |
| - name: Set up NodeJS | |
| uses: actions/setup-node@v4 | |
| if: true | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| if: true | |
| run: | | |
| env HOMEBREW_NO_AUTO_UPDATE=1 brew install libmagic | |
| - name: Install an alias | |
| # This is probably not strictly needed, but sentencepiece build script reports | |
| # errors without it. | |
| if: true | |
| run: | | |
| printf '#!/bin/sh\n\nexec sysctl -n hw.logicalcpu' > /usr/local/bin/nproc | |
| chmod +x /usr/local/bin/nproc | |
| - name: Build | |
| env: | |
| PACKAGE: "edgedbpkg.edgedb_ls:EdgeDBLanguageServer" | |
| SRC_REF: "${{ github.sha }}" | |
| PKG_REVISION: "<current-date>" | |
| PKG_SUBDIST: "nightly" | |
| PKG_PLATFORM: "macos" | |
| PKG_PLATFORM_VERSION: "x86_64" | |
| PKG_PLATFORM_ARCH: "x86_64" | |
| EXTRA_OPTIMIZATIONS: "true" | |
| METAPKG_GIT_CACHE: disabled | |
| BUILD_GENERIC: true | |
| CMAKE_POLICY_VERSION_MINIMUM: '3.5' | |
| GEL_PKG_REF: ${{ inputs.gelpkg_ref }} | |
| METAPKG_REF: ${{ inputs.metapkg_ref }} | |
| run: | | |
| edgedb-pkg/integration/macos/build.sh | |
| - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
| with: | |
| name: builds-macos-x86_64 | |
| path: artifacts/macos-x86_64 | |
| build-macos-aarch64: | |
| runs-on: ['macos-14'] | |
| needs: prep | |
| if: needs.prep.outputs.if_macos_aarch64 == 'true' | |
| steps: | |
| - name: Update Homebrew before installing Rust toolchain | |
| run: | | |
| # Homebrew renamed `rustup-init` to `rustup`: | |
| # https://github.com/Homebrew/homebrew-core/pull/177840 | |
| # But the GitHub Action runner is not updated with this change yet. | |
| # This caused the later `brew update` in step `Build` to relink Rust | |
| # toolchain executables, overwriting the custom toolchain installed by | |
| # `dsherret/rust-toolchain-file`. So let's just run `brew update` early. | |
| brew update | |
| - uses: actions/checkout@v4 | |
| if: true | |
| with: | |
| sparse-checkout: | | |
| rust-toolchain.toml | |
| sparse-checkout-cone-mode: false | |
| - name: Install Rust toolchain | |
| uses: dsherret/rust-toolchain-file@v1 | |
| if: true | |
| - uses: actions/checkout@v4 | |
| with: | |
| repository: edgedb/edgedb-pkg | |
| ref: master | |
| path: edgedb-pkg | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| if: true | |
| with: | |
| python-version: "3.12" | |
| - name: Set up NodeJS | |
| uses: actions/setup-node@v4 | |
| if: true | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| if: true | |
| run: | | |
| env HOMEBREW_NO_AUTO_UPDATE=1 brew install libmagic | |
| - name: Install an alias | |
| # This is probably not strictly needed, but sentencepiece build script reports | |
| # errors without it. | |
| if: true | |
| run: | | |
| printf '#!/bin/sh\n\nexec sysctl -n hw.logicalcpu' > /usr/local/bin/nproc | |
| chmod +x /usr/local/bin/nproc | |
| - name: Build | |
| env: | |
| PACKAGE: "edgedbpkg.edgedb_ls:EdgeDBLanguageServer" | |
| SRC_REF: "${{ github.sha }}" | |
| PKG_REVISION: "<current-date>" | |
| PKG_SUBDIST: "nightly" | |
| PKG_PLATFORM: "macos" | |
| PKG_PLATFORM_VERSION: "aarch64" | |
| PKG_PLATFORM_ARCH: "aarch64" | |
| EXTRA_OPTIMIZATIONS: "true" | |
| METAPKG_GIT_CACHE: disabled | |
| BUILD_GENERIC: true | |
| CMAKE_POLICY_VERSION_MINIMUM: '3.5' | |
| GEL_PKG_REF: ${{ inputs.gelpkg_ref }} | |
| METAPKG_REF: ${{ inputs.metapkg_ref }} | |
| run: | | |
| edgedb-pkg/integration/macos/build.sh | |
| - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
| with: | |
| name: builds-macos-aarch64 | |
| path: artifacts/macos-aarch64 | |
| publish-linux-x86_64: | |
| needs: [build-linux-x86_64] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
| with: | |
| name: builds-linux-x86_64 | |
| path: artifacts/linux-x86_64 | |
| - name: Publish | |
| uses: docker://ghcr.io/geldata/gelpkg-upload-linux-x86_64:latest | |
| env: | |
| PKG_SUBDIST: "nightly" | |
| PACKAGE_SERVER: sftp://uploader@package-upload.edgedb.net:22/ | |
| PKG_PLATFORM: "linux" | |
| PKG_PLATFORM_VERSION: "x86_64" | |
| PKG_PLATFORM_LIBC: "" | |
| PACKAGE_UPLOAD_SSH_KEY: "${{ secrets.PACKAGE_UPLOAD_SSH_KEY }}" | |
| check-published-linux-x86_64: | |
| needs: [publish-linux-x86_64] | |
| runs-on: ['self-hosted', 'linux', 'x64'] | |
| steps: | |
| - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
| with: | |
| name: builds-linux-x86_64 | |
| path: artifacts/linux-x86_64 | |
| - name: Describe | |
| id: describe | |
| uses: edgedb/edgedb-pkg/integration/actions/describe-artifact@master | |
| with: | |
| target: linux-x86_64 | |
| - name: Test Published | |
| uses: docker://ghcr.io/geldata/gelpkg-testpublished-linux-x86_64:latest | |
| env: | |
| PKG_NAME: "${{ steps.describe.outputs.name }}" | |
| PKG_SUBDIST: "nightly" | |
| PACKAGE_SERVER: sftp://uploader@package-upload.edgedb.net:22/ | |
| PKG_PLATFORM: "linux" | |
| PKG_PLATFORM_VERSION: "x86_64" | |
| PKG_INSTALL_REF: "${{ steps.describe.outputs.install-ref }}" | |
| PKG_VERSION_SLOT: "${{ steps.describe.outputs.version-slot }}" | |
| outputs: | |
| version-slot: ${{ steps.describe.outputs.version-slot }} | |
| version-core: ${{ steps.describe.outputs.version-core }} | |
| catalog-version: ${{ steps.describe.outputs.catalog-version }} | |
| publish-linux-aarch64: | |
| needs: [build-linux-aarch64] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
| with: | |
| name: builds-linux-aarch64 | |
| path: artifacts/linux-aarch64 | |
| - name: Publish | |
| uses: docker://ghcr.io/geldata/gelpkg-upload-linux-x86_64:latest | |
| env: | |
| PKG_SUBDIST: "nightly" | |
| PACKAGE_SERVER: sftp://uploader@package-upload.edgedb.net:22/ | |
| PKG_PLATFORM: "linux" | |
| PKG_PLATFORM_VERSION: "aarch64" | |
| PKG_PLATFORM_LIBC: "" | |
| PACKAGE_UPLOAD_SSH_KEY: "${{ secrets.PACKAGE_UPLOAD_SSH_KEY }}" | |
| check-published-linux-aarch64: | |
| needs: [publish-linux-aarch64] | |
| runs-on: ['self-hosted', 'linux', 'arm64'] | |
| steps: | |
| - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
| with: | |
| name: builds-linux-aarch64 | |
| path: artifacts/linux-aarch64 | |
| - name: Describe | |
| id: describe | |
| uses: edgedb/edgedb-pkg/integration/actions/describe-artifact@master | |
| with: | |
| target: linux-aarch64 | |
| - name: Test Published | |
| uses: docker://ghcr.io/geldata/gelpkg-testpublished-linux-aarch64:latest | |
| env: | |
| PKG_NAME: "${{ steps.describe.outputs.name }}" | |
| PKG_SUBDIST: "nightly" | |
| PACKAGE_SERVER: sftp://uploader@package-upload.edgedb.net:22/ | |
| PKG_PLATFORM: "linux" | |
| PKG_PLATFORM_VERSION: "aarch64" | |
| PKG_INSTALL_REF: "${{ steps.describe.outputs.install-ref }}" | |
| PKG_VERSION_SLOT: "${{ steps.describe.outputs.version-slot }}" | |
| outputs: | |
| version-slot: ${{ steps.describe.outputs.version-slot }} | |
| version-core: ${{ steps.describe.outputs.version-core }} | |
| catalog-version: ${{ steps.describe.outputs.catalog-version }} | |
| publish-linuxmusl-x86_64: | |
| needs: [build-linuxmusl-x86_64] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
| with: | |
| name: builds-linuxmusl-x86_64 | |
| path: artifacts/linuxmusl-x86_64 | |
| - name: Publish | |
| uses: docker://ghcr.io/geldata/gelpkg-upload-linux-x86_64:latest | |
| env: | |
| PKG_SUBDIST: "nightly" | |
| PACKAGE_SERVER: sftp://uploader@package-upload.edgedb.net:22/ | |
| PKG_PLATFORM: "linux" | |
| PKG_PLATFORM_VERSION: "x86_64" | |
| PKG_PLATFORM_LIBC: "musl" | |
| PACKAGE_UPLOAD_SSH_KEY: "${{ secrets.PACKAGE_UPLOAD_SSH_KEY }}" | |
| check-published-linuxmusl-x86_64: | |
| needs: [publish-linuxmusl-x86_64] | |
| runs-on: ['self-hosted', 'linux', 'x64'] | |
| steps: | |
| - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
| with: | |
| name: builds-linuxmusl-x86_64 | |
| path: artifacts/linuxmusl-x86_64 | |
| - name: Describe | |
| id: describe | |
| uses: edgedb/edgedb-pkg/integration/actions/describe-artifact@master | |
| with: | |
| target: linuxmusl-x86_64 | |
| - name: Test Published | |
| uses: docker://ghcr.io/geldata/gelpkg-testpublished-linuxmusl-x86_64:latest | |
| env: | |
| PKG_NAME: "${{ steps.describe.outputs.name }}" | |
| PKG_SUBDIST: "nightly" | |
| PACKAGE_SERVER: sftp://uploader@package-upload.edgedb.net:22/ | |
| PKG_PLATFORM: "linux" | |
| PKG_PLATFORM_VERSION: "x86_64" | |
| PKG_INSTALL_REF: "${{ steps.describe.outputs.install-ref }}" | |
| PKG_VERSION_SLOT: "${{ steps.describe.outputs.version-slot }}" | |
| outputs: | |
| version-slot: ${{ steps.describe.outputs.version-slot }} | |
| version-core: ${{ steps.describe.outputs.version-core }} | |
| catalog-version: ${{ steps.describe.outputs.catalog-version }} | |
| publish-linuxmusl-aarch64: | |
| needs: [build-linuxmusl-aarch64] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
| with: | |
| name: builds-linuxmusl-aarch64 | |
| path: artifacts/linuxmusl-aarch64 | |
| - name: Publish | |
| uses: docker://ghcr.io/geldata/gelpkg-upload-linux-x86_64:latest | |
| env: | |
| PKG_SUBDIST: "nightly" | |
| PACKAGE_SERVER: sftp://uploader@package-upload.edgedb.net:22/ | |
| PKG_PLATFORM: "linux" | |
| PKG_PLATFORM_VERSION: "aarch64" | |
| PKG_PLATFORM_LIBC: "musl" | |
| PACKAGE_UPLOAD_SSH_KEY: "${{ secrets.PACKAGE_UPLOAD_SSH_KEY }}" | |
| check-published-linuxmusl-aarch64: | |
| needs: [publish-linuxmusl-aarch64] | |
| runs-on: ['self-hosted', 'linux', 'arm64'] | |
| steps: | |
| - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
| with: | |
| name: builds-linuxmusl-aarch64 | |
| path: artifacts/linuxmusl-aarch64 | |
| - name: Describe | |
| id: describe | |
| uses: edgedb/edgedb-pkg/integration/actions/describe-artifact@master | |
| with: | |
| target: linuxmusl-aarch64 | |
| - name: Test Published | |
| uses: docker://ghcr.io/geldata/gelpkg-testpublished-linuxmusl-aarch64:latest | |
| env: | |
| PKG_NAME: "${{ steps.describe.outputs.name }}" | |
| PKG_SUBDIST: "nightly" | |
| PACKAGE_SERVER: sftp://uploader@package-upload.edgedb.net:22/ | |
| PKG_PLATFORM: "linux" | |
| PKG_PLATFORM_VERSION: "aarch64" | |
| PKG_INSTALL_REF: "${{ steps.describe.outputs.install-ref }}" | |
| PKG_VERSION_SLOT: "${{ steps.describe.outputs.version-slot }}" | |
| outputs: | |
| version-slot: ${{ steps.describe.outputs.version-slot }} | |
| version-core: ${{ steps.describe.outputs.version-core }} | |
| catalog-version: ${{ steps.describe.outputs.catalog-version }} | |
| publish-macos-x86_64: | |
| needs: [build-macos-x86_64] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
| with: | |
| name: builds-macos-x86_64 | |
| path: artifacts/macos-x86_64 | |
| - uses: actions/checkout@v4 | |
| with: | |
| repository: edgedb/edgedb-pkg | |
| ref: master | |
| path: edgedb-pkg | |
| - name: Describe | |
| id: describe | |
| uses: edgedb/edgedb-pkg/integration/actions/describe-artifact@master | |
| with: | |
| target: macos-x86_64 | |
| - name: Publish | |
| uses: docker://ghcr.io/geldata/gelpkg-upload-linux-x86_64:latest | |
| env: | |
| PKG_SUBDIST: "nightly" | |
| PKG_PLATFORM: "macos" | |
| PKG_PLATFORM_VERSION: "x86_64" | |
| PACKAGE_UPLOAD_SSH_KEY: "${{ secrets.PACKAGE_UPLOAD_SSH_KEY }}" | |
| publish-macos-aarch64: | |
| needs: [build-macos-aarch64] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
| with: | |
| name: builds-macos-aarch64 | |
| path: artifacts/macos-aarch64 | |
| - uses: actions/checkout@v4 | |
| with: | |
| repository: edgedb/edgedb-pkg | |
| ref: master | |
| path: edgedb-pkg | |
| - name: Describe | |
| id: describe | |
| uses: edgedb/edgedb-pkg/integration/actions/describe-artifact@master | |
| with: | |
| target: macos-aarch64 | |
| - name: Publish | |
| uses: docker://ghcr.io/geldata/gelpkg-upload-linux-x86_64:latest | |
| env: | |
| PKG_SUBDIST: "nightly" | |
| PKG_PLATFORM: "macos" | |
| PKG_PLATFORM_VERSION: "aarch64" | |
| PACKAGE_UPLOAD_SSH_KEY: "${{ secrets.PACKAGE_UPLOAD_SSH_KEY }}" | |
| workflow-notifications: | |
| if: failure() && github.event_name != 'pull_request' | |
| name: Notify in Slack on failures | |
| needs: | |
| - prep | |
| - build-linux-x86_64 | |
| - publish-linux-x86_64 | |
| - check-published-linux-x86_64 | |
| - build-linux-aarch64 | |
| - publish-linux-aarch64 | |
| - check-published-linux-aarch64 | |
| - build-linuxmusl-x86_64 | |
| - publish-linuxmusl-x86_64 | |
| - check-published-linuxmusl-x86_64 | |
| - build-linuxmusl-aarch64 | |
| - publish-linuxmusl-aarch64 | |
| - check-published-linuxmusl-aarch64 | |
| - build-macos-x86_64 | |
| - publish-macos-x86_64 | |
| - build-macos-aarch64 | |
| - publish-macos-aarch64 | |
| runs-on: ubuntu-latest | |
| permissions: | |
| actions: 'read' | |
| steps: | |
| - name: Slack Workflow Notification | |
| uses: Gamesight/slack-workflow-status@26a36836c887f260477432e4314ec3490a84f309 | |
| with: | |
| repo_token: ${{secrets.GITHUB_TOKEN}} | |
| slack_webhook_url: ${{secrets.ACTIONS_SLACK_WEBHOOK_URL}} | |
| name: 'Workflow notifications' | |
| icon_emoji: ':hammer:' | |
| include_jobs: 'on-failure' |