diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..23a852d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,95 @@ +name: CI + +on: + push: + branches: + - '*' + pull_request: + branches: + - '*' + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + container: + image: php:8.3 + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install dependencies + run: | + apt update -yqq + apt install git libpq-dev libzip-dev zip make wget gnupg -yqq + + - name: Install phive + run: | + wget -O phive.phar https://phar.io/releases/phive.phar + wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc + gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79 + gpg --verify phive.phar.asc phive.phar + chmod +x phive.phar + mv phive.phar /usr/local/bin/phive + + - name: Install phab + run: | + phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C + + - name: Install latest version of NCC + run: | + git clone https://git.n64.cc/nosial/ncc.git + cd ncc + make redist + php build/src/INSTALL --auto --install-composer + cd .. && rm -rf ncc + + - name: Build project + run: | + ncc build --config release --log-level debug + + - name: Upload artifacts + if: github.ref != 'refs/heads/main' + uses: actions/upload-artifact@v3 + with: + name: build + path: build/ + + release: + needs: build + if: startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + container: + image: php:8.3 + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install dependencies + run: | + apt update -yqq + apt install git libpq-dev libzip-dev zip make wget gnupg -yqq + + - name: Install latest version of NCC + run: | + git clone https://git.n64.cc/nosial/ncc.git + cd ncc + make redist + php build/src/INSTALL --auto --install-composer + cd .. && rm -rf ncc + + - name: Build project for release + run: | + ncc build --config release --log-level debug + + - name: Upload release artifact + run: | + curl --header "JOB-TOKEN: ${{ secrets.GITHUB_TOKEN }}" --upload-file build/release/net.nosial.configlib.ncc "$GITHUB_SERVER_URL/${{ github.repository }}/releases/${{ github.ref_name }}/net.nosial.configlib.ncc" + + - name: Upload artifacts + uses: actions/upload-artifact@v3 + with: + name: build + path: build/