Skip to content

Merge pull request #9 from abhinayagarwal/release #1

Merge pull request #9 from abhinayagarwal/release

Merge pull request #9 from abhinayagarwal/release #1

Workflow file for this run

name: Build and publish snapshots for Java
on:
push:
branches: [ main ]
jobs:
build:
strategy:
matrix:
os: [ ubuntu-20.04, macos-latest, macos-13, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
with:
ref: main
- name: Install latest bash on macOS
if: runner.os == 'macOS'
run: |
brew update
brew install bash
brew install coreutils
brew install protobuf
pip install setuptools
- name: linux install stuff
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler crossbuild-essential-arm64
- name: windows install stuff
if: runner.os == 'Windows'
run: choco install protoc
shell: cmd
- name: Set environment variables
run: |
echo "OS=${RUNNER_OS,,}" >> $GITHUB_ENV
echo "ARCH=${RUNNER_ARCH,,}" >> $GITHUB_ENV
echo "AARCH=${RUNNER_ARCH,,}" >> $GITHUB_ENV
if [[ ${{ runner.os }} == "Linux" ]]
then
platform=unix
rtcplatform=linux
classifier=linux-x86_64
elif [[ ${{ runner.os }} == "macOS" ]]
then
platform=mac
rtcplatform=mac
if [[ ${{ runner.arch }} == "X64" ]]
then
classifier=darwin-x86_64
else
classifier=darwin-aarch64
echo "AARCH=aarch64" >> $GITHUB_ENV
fi
elif [[ ${{ runner.os }} == "Windows" ]]
then
platform=windows
rtcplatform=windows
classifier=windows-x86_64
fi
echo "RTCPLATFORM=$rtcplatform" >> $GITHUB_ENV
echo "CLASSIFIER=$classifier" >> $GITHUB_ENV
shell: bash
- name: Download OpenJDK 22
id: download
uses: oracle-actions/setup-java@v1
with:
website: jdk.java.net
release: 22
install: false
- name: Setup Java and Apache Maven
uses: actions/setup-java@v3
with:
distribution: jdkfile
jdkFile: ${{ steps.download.outputs.archive }}
java-version: ${{ steps.download.outputs.version }}
server-id: gluon-nexus
server-username: MAVEN_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
- name: Checkout tools repo
run: |
echo "print env variables"
echo ${{ env.OS }}
echo ${{ env.ARCH }}
echo ${{ env.RTCPLATFORM }}
echo ${{ env.CLASSIFIER }}
cd $GITHUB_WORKSPACE
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
- name: Install rustup
run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
- name: Fetch webrtc (default)
if: runner.os != 'Windows'
run: |
./bin/fetch-artifact --platform ${{ env.RTCPLATFORM }}-${{ env.ARCH }} --release
- name: Fetch webrtc (windows)
if: runner.os == 'Windows'
run: |
echo "fetch webrtcv2"
sh ./bin/fetch-artifact --platform windows-x64 --release
echo "fetch webrtc done"
- name: Download and extract JEXTRACT (default)
if: runner.os != 'Windows'
run: |
download_url="https://download.java.net/java/early_access/jextract/22/3/openjdk-22-jextract+3-13_${{ env.OS }}-${{ env.AARCH }}_bin.tar.gz"
wget -q --show-progress -O $RUNNER_TEMP/jextract.tar.gz $download_url
tar -xvzf $RUNNER_TEMP/jextract.tar.gz -C $GITHUB_WORKSPACE
- name: Download and extract JEXTRACT (Windows)
if: runner.os == 'Windows'
run: |
$ProgressPreference = "SilentlyContinue"
Invoke-WebRequest https://download.java.net/java/early_access/jextract/22/3/openjdk-22-jextract+3-13_${{ env.OS }}-${{ env.ARCH }}_bin.tar.gz -OutFile jextract.tar.gz
tar -xvzf jextract.tar.gz -C $env:GITHUB_WORKSPACE
del jextract.tar.gz
shell: powershell
- name: Build (default)
if: runner.os != 'Windows'
run: |
export PATH=$GITHUB_WORKSPACE/depot_tools/:$PATH
make java JEXTRACT=$GITHUB_WORKSPACE/jextract-22 JDK=$JAVA_HOME TARGET_ARCH=${{ env.ARCH }} MACOS_SDK_VERSION=12.1
- name: Build (Windows)
if: runner.os == 'Windows'
run: |
$env:DEPOT_TOOLS_WIN_TOOLCHAIN = 0
$env:PATH = $env:GITHUB_WORKSPACE + "\depot_tools\;" + $env:GITHUB_WORKSPACE + "\make\bin\;" + $env:PATH
echo $env:PATH
make java PLATFORM=${{ env.PLATFORM }} JEXTRACT=$env:GITHUB_WORKSPACE\jextract-22 JDK=$env:JAVA_HOME TARGET_ARCH=${{ env.ARCH }}
shell: powershell
- name: Deploy snapshot
run: |
cd src/java/tring
mvn -Dclassifier=${{ env.CLASSIFIER }} deploy
env:
MAVEN_USERNAME: ${{ secrets.GLUON_NEXUS_USERNAME }}
MAVEN_CENTRAL_TOKEN: ${{ secrets.GLUON_NEXUS_PASSWORD }}