From f4d85e439e4b1a3944277818c754ff35b8464cb2 Mon Sep 17 00:00:00 2001 From: Lars Kanis Date: Fri, 2 Dec 2022 11:00:26 +0100 Subject: [PATCH] CI: Add Github actions --- .github/workflows/ci.yml | 81 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..20624e9 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,81 @@ +name: CI + +on: [push, pull_request] + +jobs: + job_test_gem: + name: Test built gem + strategy: + fail-fast: false + matrix: + include: + - os: windows + ruby: "head" + PGVERSION: 15.1-1-windows-x64 + PGVER: "15" + - os: windows + ruby: "2.4" + PGVERSION: 9.4.26-1-windows-x64 + PGVER: "9.4" + - os: ubuntu + ruby: "head" + PGVER: "15" + - os: ubuntu + os_ver: "20.04" + ruby: "2.3" + PGVER: "9.3" + - os: macos + ruby: "head" + PGVERSION: 15.1-1-osx + PGVER: "15" + + runs-on: ${{ matrix.os }}-${{ matrix.os_ver || 'latest' }} + env: + PGVERSION: ${{ matrix.PGVERSION }} + PGVER: ${{ matrix.PGVER }} + + steps: + - uses: actions/checkout@v3 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + + - name: Download PostgreSQL Windows + if: matrix.os == 'windows' + run: | + Add-Type -AssemblyName System.IO.Compression.FileSystem + function Unzip { + param([string]$zipfile, [string]$outpath) + [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath) + } + + $(new-object net.webclient).DownloadFile("http://get.enterprisedb.com/postgresql/postgresql-$env:PGVERSION-binaries.zip", "postgresql-binaries.zip") + Unzip "postgresql-binaries.zip" "." + echo "$pwd/pgsql/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "PGUSER=$env:USERNAME" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "PGPASSWORD=" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + md temp + icacls temp /grant "Everyone:(OI)(CI)F" /T + + - name: Download PostgreSQL Ubuntu + if: matrix.os == 'ubuntu' + run: | + echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main $PGVER" | sudo tee -a /etc/apt/sources.list.d/pgdg.list + wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - + sudo apt-get -y update + sudo apt-get -y --allow-downgrades install postgresql-$PGVER libpq5=$PGVER* libpq-dev=$PGVER* + echo /usr/lib/postgresql/$PGVER/bin >> $GITHUB_PATH + + - name: Download PostgreSQL Macos + if: matrix.os == 'macos' + run: | + wget https://get.enterprisedb.com/postgresql/postgresql-$PGVERSION-binaries.zip && \ + sudo mkdir -p /Library/PostgreSQL && \ + sudo unzip postgresql-$PGVERSION-binaries.zip -d /Library/PostgreSQL/$PGVER && \ + echo /Library/PostgreSQL/$PGVER/bin >> $GITHUB_PATH + + - run: bundle install + + - name: Run specs + run: bundle exec rake test