From e54b38e18672600e594708e7541906f49a5e3328 Mon Sep 17 00:00:00 2001 From: glihm Date: Mon, 27 Nov 2023 19:39:17 -0600 Subject: [PATCH] ci: remove release --- .github/workflows/release.yml | 303 ---------------------------------- 1 file changed, 303 deletions(-) delete mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 9b20ff0142..0000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,303 +0,0 @@ -name: release - -on: - push: - tags: - - "*" - workflow_dispatch: - -env: - IS_NIGHTLY: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && 'true' || 'false' }} - CARGO_TERM_COLOR: always - RUST_VERSION: 1.70.0 - REGISTRY_IMAGE: ghcr.io/${{ github.repository }} - -jobs: - prepare: - name: Prepare release - runs-on: ubuntu-latest - - outputs: - tag_name: ${{ steps.release_info.outputs.tag_name }} - release_name: ${{ steps.release_info.outputs.release_name }} - changelog: ${{ steps.build_changelog.outputs.changelog }} - - steps: - - name: Checkout sources - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Compute release name and tag - id: release_info - run: | - if [[ $IS_NIGHTLY == "true" ]]; then - echo "tag_name=nightly-${GITHUB_SHA}" >> $GITHUB_OUTPUT - echo "release_name=Nightly ($(date '+%Y-%m-%d'))" >> $GITHUB_OUTPUT - else - echo "tag_name=${GITHUB_REF_NAME}" >> $GITHUB_OUTPUT - echo "release_name=${GITHUB_REF_NAME}" >> $GITHUB_OUTPUT - fi - - - name: Check version - run: | - if [[ $IS_NIGHTLY != "true" ]]; then - cargo install cargo-get - VERSION=$(cargo get workspace.package.version) - TAG=${{ steps.release_info.outputs.tag_name }} - if [[ "v$VERSION" != "$TAG" ]]; then - echo "Version in Cargo.toml ($VERSION) does not match release tag ($TAG)" - exit 1 - fi - fi - - # Creates a `nightly-SHA` tag for this specific nightly - # This tag is used for this specific nightly version's release - # which allows users to roll back. It is also used to build - # the changelog. - - name: Create build-specific nightly tag - if: ${{ env.IS_NIGHTLY == 'true' }} - uses: actions/github-script@v5 - env: - TAG_NAME: ${{ steps.release_info.outputs.tag_name }} - with: - script: | - const createTag = require('./.github/scripts/create-tag.js') - await createTag({ github, context }, process.env.TAG_NAME) - - - name: Build changelog - id: build_changelog - uses: mikepenz/release-changelog-builder-action@v2 - with: - configuration: "./.github/changelog.json" - fromTag: ${{ env.IS_NIGHTLY == 'true' && 'nightly' || '' }} - toTag: ${{ steps.release_info.outputs.tag_name }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - release: - name: ${{ matrix.job.target }} (${{ matrix.job.os }}) - needs: prepare - runs-on: ${{ matrix.job.os }} - strategy: - matrix: - job: - # The OS is used for the runner - # The platform is a generic platform name - # The target is used by Cargo - # The arch is either 386, arm64 or amd64 - # The svm target platform to use for the binary https://github.com/roynalnaruto/svm-rs/blob/84cbe0ac705becabdc13168bae28a45ad2299749/svm-builds/build.rs#L4-L24 - - os: ubuntu-latest-4-cores - platform: linux - target: x86_64-unknown-linux-gnu - arch: amd64 - - os: ubuntu-latest-8-cores - platform: linux - target: aarch64-unknown-linux-gnu - arch: arm64 - svm_target_platform: linux-aarch64 - - os: macos-latest-xlarge - platform: darwin - target: x86_64-apple-darwin - arch: amd64 - - os: macos-latest - platform: darwin - target: aarch64-apple-darwin - arch: arm64 - - os: windows-latest - platform: win32 - target: x86_64-pc-windows-msvc - arch: amd64 - - steps: - - uses: actions/checkout@v3 - - - uses: dtolnay/rust-toolchain@master - name: Rust Toolchain Setup - with: - targets: ${{ matrix.job.target }} - toolchain: ${{ env.RUST_VERSION }} - - - uses: Swatinem/rust-cache@v1 - with: - cache-on-failure: true - - - uses: arduino/setup-protoc@v2 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - version: "25.x" - - - name: Apple M1 setup - if: ${{ matrix.job.target == 'aarch64-apple-darwin' }} - run: | - echo "SDKROOT=$(xcrun -sdk macosx --show-sdk-path)" >> $GITHUB_ENV - echo "MACOSX_DEPLOYMENT_TARGET=$(xcrun -sdk macosx --show-sdk-platform-version)" >> $GITHUB_ENV - - - name: Linux ARM setup - if: ${{ matrix.job.target == 'aarch64-unknown-linux-gnu' }} - run: | - sudo apt-get update -y - sudo apt-get install -y gcc-aarch64-linux-gnu libssl-dev - echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV - - - name: Build binaries - run: cargo build --release --bins --target ${{ matrix.job.target }} - - - name: Archive binaries - id: artifacts - env: - PLATFORM_NAME: ${{ matrix.job.platform }} - TARGET: ${{ matrix.job.target }} - ARCH: ${{ matrix.job.arch }} - VERSION_NAME: ${{ (env.IS_NIGHTLY == 'true' && 'nightly') || needs.prepare.outputs.tag_name }} - run: | - if [ "$PLATFORM_NAME" == "linux" ]; then - tar -czvf "dojo_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.tar.gz" -C ./target/${TARGET}/release katana sozo torii dojo-language-server - echo "file_name=dojo_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.tar.gz" >> $GITHUB_OUTPUT - elif [ "$PLATFORM_NAME" == "darwin" ]; then - # We need to use gtar here otherwise the archive is corrupt. - # See: https://github.com/actions/virtual-environments/issues/2619 - gtar -czvf "dojo_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.tar.gz" -C ./target/${TARGET}/release katana sozo torii dojo-language-server - echo "file_name=dojo_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.tar.gz" >> $GITHUB_OUTPUT - else - cd ./target/${TARGET}/release - 7z a -tzip "dojo_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.zip" katana.exe sozo.exe torii.exe dojo-language-server.exe - mv "dojo_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.zip" ../../../ - echo "file_name=dojo_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.tar.gz" >> $GITHUB_OUTPUT - fi - shell: bash - - # Creates the release for this specific version - - name: Create release - uses: softprops/action-gh-release@v1 - with: - name: ${{ needs.prepare.outputs.release_name }} - tag_name: ${{ needs.prepare.outputs.tag_name }} - prerelease: ${{ env.IS_NIGHTLY == 'true' }} - body: ${{ needs.prepare.outputs.changelog }} - files: | - ${{ steps.artifacts.outputs.file_name }} - - # If this is a nightly release, it also updates the release - # tagged `nightly` for compatibility with `dojoup` - - name: Update nightly release - if: ${{ env.IS_NIGHTLY == 'true' }} - uses: softprops/action-gh-release@v1 - with: - name: "Nightly" - tag_name: "nightly" - prerelease: true - body: ${{ needs.prepare.outputs.changelog }} - files: | - ${{ steps.artifacts.outputs.file_name }} - - # Upload these for use with the Docker build later - - name: Upload binaries - uses: actions/upload-artifact@v3 - with: - name: binaries - path: | - target/x86_64-unknown-linux-gnu/release/katana - target/x86_64-unknown-linux-gnu/release/sozo - target/x86_64-unknown-linux-gnu/release/torii - target/aarch64-unknown-linux-gnu/release/katana - target/aarch64-unknown-linux-gnu/release/sozo - target/aarch64-unknown-linux-gnu/release/torii - retention-days: 1 - - cleanup: - name: Release cleanup - runs-on: ubuntu-latest - needs: release - - steps: - - name: Checkout sources - uses: actions/checkout@v2 - - # Moves the `nightly` tag to `HEAD` - - name: Move nightly tag - if: ${{ env.IS_NIGHTLY == 'true' }} - uses: actions/github-script@v5 - with: - script: | - const moveTag = require('./.github/scripts/move-tag.js') - await moveTag({ github, context }, 'nightly') - - - name: Delete old nightlies - uses: actions/github-script@v5 - with: - script: | - const prunePrereleases = require('./.github/scripts/prune-prereleases.js') - await prunePrereleases({github, context}) - - docker-build-and-push-linux-arm64: - name: Build and push linux-arm64 docker image - runs-on: ubuntu-latest-4-cores - needs: [prepare, release] - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Download binaries - uses: actions/download-artifact@v3 - with: - name: binaries - path: artifacts - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v1 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push docker image - uses: docker/build-push-action@v4 - with: - no-cache: true - push: true - tags: ghcr.io/${{ github.repository }}:latest,ghcr.io/${{ github.repository }}:${{ needs.prepare.outputs.tag_name }} - platforms: linux/arm64 - target: arm64 - build-contexts: | - artifacts=artifacts - - docker-build-and-push-linux-amd64: - name: Build and push linux-amd64 docker image - runs-on: ubuntu-latest-4-cores - needs: [prepare, release] - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Download binaries - uses: actions/download-artifact@v3 - with: - name: binaries - path: artifacts - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v1 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push docker image - uses: docker/build-push-action@v4 - with: - build-contexts: | - artifacts=artifacts - no-cache: true - push: true - tags: ghcr.io/${{ github.repository }}:latest,ghcr.io/${{ github.repository }}:${{ needs.prepare.outputs.tag_name }} - platforms: linux/amd64 - target: amd64