diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml deleted file mode 100644 index 9bb02a2..0000000 --- a/.github/workflows/test.yaml +++ /dev/null @@ -1,32 +0,0 @@ -name: test -on: [push] - -jobs: - coder_cli: - strategy: - matrix: - os: [macos-latest, ubuntu-latest] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v1 - - run: | - if [[ "$(uname -s)" == "Linux" ]] - then - echo "/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin" >> $GITHUB_PATH - fi - - run: brew install --build-from-source ./coder-cli.rb - - run: coder --version - coder_cli_nightly: - strategy: - matrix: - os: [macos-latest, ubuntu-latest] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v1 - - run: | - if [[ "$(uname -s)" == "Linux" ]] - then - echo "/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin" >> $GITHUB_PATH - fi - - run: brew install --build-from-source ./coder-cli-nightly.rb - - run: coder --version diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..b3feea8 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,46 @@ +name: test + +on: + push: + branches: ["main"] + pull_request: + branches: ["**"] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + +jobs: + test: + strategy: + fail-fast: false + matrix: + os: [ubuntu-22.04, macos-13] + + runs-on: ${{ matrix.os }} + + steps: + - name: Set up Homebrew + id: set-up-homebrew + uses: Homebrew/actions/setup-homebrew@master + + - name: Cache Homebrew Bundler RubyGems + id: cache + uses: actions/cache@v3 + with: + path: ${{ steps.set-up-homebrew.outputs.gems-path }} + key: ${{ runner.os }}-rubygems-${{ steps.set-up-homebrew.outputs.gems-hash }} + restore-keys: ${{ runner.os }}-rubygems- + + - name: Install Homebrew Bundler RubyGems + if: steps.cache.outputs.cache-hit != 'true' + run: brew install-bundler-gems + + - run: brew test-bot --only-cleanup-before + + - run: brew test-bot --only-setup + + - run: brew test-bot --only-tap-syntax + + - run: brew test-bot --only-formulae + if: github.event_name == 'pull_request' diff --git a/Formula/coder.rb b/Formula/coder.rb new file mode 100644 index 0000000..2121f9b --- /dev/null +++ b/Formula/coder.rb @@ -0,0 +1,32 @@ +class Coder < Formula + desc "Provisions remote development environments via Terraform" + homepage "https://github.com/coder/coder" + version "2.1.4" + + if OS.mac? + if Hardware::CPU.arm? + url "https://github.com/coder/coder/releases/download/v#{version}/coder_#{version}_darwin_arm64.zip" + sha256 "ac67c032e81fed7ef3b2e1fc5bfafb878e7551c081d0a136f5a88583c279c060" + else + url "https://github.com/coder/coder/releases/download/v#{version}/coder_#{version}_darwin_amd64.zip" + sha256 "693d6c450891627d879123ea9a08dc5917dafee7de6c639c5c9b496abe6f250b" + end + else + url "https://github.com/coder/coder/releases/download/v#{version}/coder_#{version}_linux_amd64.tar.gz" + sha256 "41666bbe3afacd153fbe6c1a2d908bb4fb7a88e821205cb7136a0bad2d1cd6dc" + end + + def install + bin.install "coder" + end + + test do + version_output = shell_output("#{bin}/coder version") + assert_match version.to_s, version_output + refute_match "AGPL", version_output + assert_match "Full build", version_output + + assert_match "You are not logged in", shell_output("#{bin}/coder netcheck 2>&1", 1) + assert_match "postgres://", shell_output("#{bin}/coder server postgres-builtin-url") + end +end diff --git a/coder-cli.rb b/Formula/coder@1.rb similarity index 50% rename from coder-cli.rb rename to Formula/coder@1.rb index 40aab40..8738698 100644 --- a/coder-cli.rb +++ b/Formula/coder@1.rb @@ -1,19 +1,26 @@ -class CoderCli < Formula +class CoderAT1 < Formula desc "Command-line tool for the Coder remote development platform" - homepage "https://github.com/cdr/coder-cli" + homepage "https://github.com/coder/coder-v1-cli" version "1.44.0" if OS.mac? - url "https://github.com/cdr/coder-cli/releases/download/v1.44.0/coder-cli-darwin-amd64.zip" + url "https://github.com/coder/coder-v1-cli/releases/download/v#{version}/coder-cli-darwin-amd64.zip" sha256 "f3fe13cec4d0615a40134675279d4cd1a5a871356d90dedef020981622f1b693" else - url "https://github.com/cdr/coder-cli/releases/download/v1.44.0/coder-cli-linux-amd64.tar.gz" + url "https://github.com/coder/coder-v1-cli/releases/download/v#{version}/coder-cli-linux-amd64.tar.gz" sha256 "642320e709a8585ae732e3b31d5945a09cd2a7d63121d7121c34ebc5740d3fc9" end + keg_only :versioned_formula + + def version_suffix + version.major.to_s + end + def install bin.install "coder" end + test do system "#{bin}/coder", "--version" end diff --git a/ci/update.sh b/ci/update.sh deleted file mode 100755 index 56a923c..0000000 --- a/ci/update.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -# Updates both the coder-cli and coder-cli-nightly formulae to have the given -# values. -# ./update.sh "" "" "" - -set -euo pipefail -cd "$(dirname "$0")" - -version="$1" -darwin_sha="$(echo "$2" | tr "[:upper:]" "[:lower:]")" -linux_sha="$(echo "$3" | tr "[:upper:]" "[:lower:]")" - -# Get the old version to use in our find/replace. -old_version="$(sed -n "s/.*version \"\(.*\)\".*/\1/p" ../coder-cli.rb)" -if [[ "$old_version" == "" ]]; then - echo "Could not determine the old version of the formula..." >&2 - exit 1 -fi - -# Replace version -sed -i "s/${old_version//./\.}/${version//./\.}/g" ../coder-cli{,-nightly}.rb - -# Darwin amd64 SHA256. This only selects the first match -sed -zi "s/sha256 \"[a-f0-9]*\"/sha256 \"$darwin_sha\"/1" ../coder-cli{,-nightly}.rb - -# Linux amd64 SHA256. This only selects the second match -sed -zi "s/sha256 \"[a-f0-9]*\"/sha256 \"$linux_sha\"/2" ../coder-cli{,-nightly}.rb diff --git a/coder-cli-nightly.rb b/coder-cli-nightly.rb deleted file mode 100644 index 0587379..0000000 --- a/coder-cli-nightly.rb +++ /dev/null @@ -1,20 +0,0 @@ -class CoderCliNightly < Formula - desc "Command-line tool for the Coder remote development platform, nightly release channel" - homepage "https://github.com/cdr/coder-cli" - version "1.44.0" - - if OS.mac? - url "https://github.com/cdr/coder-cli/releases/download/v1.44.0/coder-cli-darwin-amd64.zip" - sha256 "f3fe13cec4d0615a40134675279d4cd1a5a871356d90dedef020981622f1b693" - else - url "https://github.com/cdr/coder-cli/releases/download/v1.44.0/coder-cli-linux-amd64.tar.gz" - sha256 "642320e709a8585ae732e3b31d5945a09cd2a7d63121d7121c34ebc5740d3fc9" - end - - def install - bin.install "coder" - end - test do - system "#{bin}/coder", "--version" - end -end diff --git a/formula_renames.json b/formula_renames.json new file mode 100644 index 0000000..ac8adc9 --- /dev/null +++ b/formula_renames.json @@ -0,0 +1,4 @@ +{ + "coder-cli-nightly": "coder@1", + "coder-cli": "coder@1" +} diff --git a/scripts/update-v1.sh b/scripts/update-v1.sh new file mode 100755 index 0000000..45751e1 --- /dev/null +++ b/scripts/update-v1.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# Updates the coder@1 formula +# ./update.sh "" "" "" + +set -euo pipefail +cd "$(dirname "$0")" + +version="$1" +darwin_sha="$(echo "$2" | tr "[:upper:]" "[:lower:]")" +linux_sha="$(echo "$3" | tr "[:upper:]" "[:lower:]")" + +# Replace version +sed -i "s/version \"[0-9.]*\"/version \"$version\"/g" "../Formula/coder@1.rb" + +# Update macOS hash +sed -zi "s/sha256 \"[a-f0-9]*\"/sha256 \"$darwin_sha\"/1" "../Formula/coder@1.rb" + +# Update Linux hash +sed -zi "s/sha256 \"[a-f0-9]*\"/sha256 \"$linux_sha\"/2" "../Formula/coder@1.rb" diff --git a/scripts/update-v2.sh b/scripts/update-v2.sh new file mode 100755 index 0000000..288312e --- /dev/null +++ b/scripts/update-v2.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Updates the coder formula +# ./update.sh "" "" "" "" + +set -euo pipefail +cd "$(dirname "$0")" + +version="$1" +darwin_arm_sha="$(echo "$2" | tr "[:upper:]" "[:lower:]")" +darwin_intel_sha="$(echo "$3" | tr "[:upper:]" "[:lower:]")" +linux_sha="$(echo "$4" | tr "[:upper:]" "[:lower:]")" + +# Replace version +sed -i "s/version \"[0-9.]*\"/version \"$version\"/g" "../Formula/coder.rb" + +# Update macOS ARM hash +sed -zi "s/sha256 \"[a-f0-9]*\"/sha256 \"$darwin_arm_sha\"/1" "../Formula/coder.rb" + +# Update macOS Intel hash +sed -zi "s/sha256 \"[a-f0-9]*\"/sha256 \"$darwin_intel_sha\"/2" "../Formula/coder.rb" + +# Update Linux hash +sed -zi "s/sha256 \"[a-f0-9]*\"/sha256 \"$linux_sha\"/3" "../Formula/coder.rb"