Skip to content
Snippets Groups Projects
Commit e09df691 authored by Colin Watson's avatar Colin Watson
Browse files

New upstream version 1.12.0+dfsg

parent 7454f2c3
Branches upstream
Tags upstream/1.12.0+dfsg
No related merge requests found
Showing
with 442 additions and 135 deletions
......@@ -33,12 +33,16 @@ github:
- php
- python
- ruby
- rust
enabled_merge_buttons:
merge: false
rebase: true
squash: true
collaborators:
- jbonofre
notifications:
commits: commits@avro.apache.org
issues: issues@avro.apache.org
......
{
"name": "Avro Development",
"build": { "dockerfile": "../share/docker/Dockerfile" },
// Use 'settings' to set *default* container specific settings.json values on container create.
// You can edit these settings after create using File > Preferences > Settings > Remote.
"settings": {
"build": {
"dockerfile": "../share/docker/Dockerfile",
"context": ".."
},
// Add the IDs of extensions you want installed when the container is created in the array below.
"extensions": [
// Python
"ms-python.python",
"ms-python.vscode-pylance",
// C/C++
"ms-vscode.cpptools",
// C#
"ms-dotnettools.csharp",
// Rust
"vadimcn.vscode-lldb",
"mutantdino.resourcemonitor",
"matklad.rust-analyzer",
"tamasfe.even-better-toml",
"serayuzgur.crates",
// Java
"vscjava.vscode-java-pack",
// Shell script
"timonwong.shellcheck",
// YAML
"redhat.vscode-yaml",
// Git
"eamodio.gitlens"
]
"customizations": {
"vscode": {
"settings": {
},
"extensions": [
// Python
"ms-python.python",
"ms-python.vscode-pylance",
// C/C++
"ms-vscode.cpptools",
// C#
"ms-dotnettools.csharp",
// Rust
"vadimcn.vscode-lldb",
"mutantdino.resourcemonitor",
"matklad.rust-analyzer",
"tamasfe.even-better-toml",
"serayuzgur.crates",
// Java
"vscjava.vscode-java-pack",
// Shell script
"timonwong.shellcheck",
// YAML
"redhat.vscode-yaml",
// Git
"eamodio.gitlens"
]
}
}
}
\ No newline at end of file
......@@ -19,12 +19,29 @@ root = true
charset = utf-8
end_of_line = lf
insert_final_newline = true
ij_any_block_comment_at_first_column = false
ij_any_line_comment_at_first_column = false
[*.{java,xml,sh}]
indent_style = space
indent_size = 2
trim_trailing_whitespace=true
ij_continuation_indent_size = 4
ij_java_wrap_comments = true
ij_any_indent_case_from_switch = false
[*.{avsc,avpr,avdl}]
indent_style = space
indent_size = 2
trim_trailing_whitespace=true
ij_continuation_indent_size = 4
ij_json_space_after_colon = true
ij_json_space_before_colon = true
ij_json_spaces_within_brackets = true
ij_any_array_initializer_wrap = off
[*.{ps1}]
indent_style = space
indent_size = 4
......
Make sure you have checked _all_ steps below.
<!--
### Jira
*Thank you very much for contributing to Apache Avro - we are happy that you want to help us improve Avro. To help the community review your contribution in the best possible way, please go through the checklist below, which will get the contribution into a shape in which it can be best reviewed.*
- [ ] My PR addresses the following [Avro Jira](https://issues.apache.org/jira/browse/AVRO/) issues and references them in the PR title. For example, "AVRO-1234: My Avro PR"
- https://issues.apache.org/jira/browse/AVRO-XXX
- In case you are adding a dependency, check if the license complies with the [ASF 3rd Party License Policy](https://www.apache.org/legal/resolved.html#category-x).
*Please understand that we do not do this to make contributions to Avro a hassle. In order to uphold a high standard of quality for code contributions, while at the same time managing a large number of contributions, we need contributors to prepare the contributions well, and give reviewers enough contextual information for the review. Please also understand that contributions that do not follow this guide will take longer to review and thus typically be picked up with lower priority by the community.*
### Tests
## Contribution Checklist
- [ ] My PR adds the following unit tests __OR__ does not need testing for this extremely good reason:
- Make sure that the pull request corresponds to a [JIRA issue](https://issues.apache.org/jira/projects/AVRO/issues). Exceptions are made for typos in JavaDoc or documentation files, which need no JIRA issue.
- Name the pull request in the form "AVRO-XXXX: [component] Title of the pull request", where *AVRO-XXXX* should be replaced by the actual issue number.
The *component* is optional, but can help identify the correct reviewers faster: either the language ("java", "python") or subsystem such as "build" or "doc" are good candidates.
### Commits
- Fill out the template below to describe the changes contributed by the pull request. That will give reviewers the context they need to do the review.
- Make sure that the change passes the automated tests. You can [build the entire project](https://github.com/apache/avro/blob/main/BUILD.md) or just the [language-specific SDK](https://avro.apache.org/project/how-to-contribute/#unit-tests).
- [ ] My commits all reference Jira issues in their subject lines. In addition, my commits follow the guidelines from "[How to write a good git commit message](https://chris.beams.io/posts/git-commit/)":
1. Subject is separated from body by a blank line
1. Subject is limited to 50 characters (not including Jira issue reference)
1. Subject does not end with a period
1. Subject uses the imperative mood ("add", not "adding")
1. Body wraps at 72 characters
1. Body explains "what" and "why", not "how"
- Each pull request should address only one issue, not mix up code from multiple issues.
- Each commit in the pull request has a meaningful commit message (including the JIRA id)
### Documentation
- Every commit message references Jira issues in their subject lines. In addition, commits follow the guidelines from [How to write a good git commit message](https://chris.beams.io/posts/git-commit/)
1. Subject is separated from body by a blank line
1. Subject is limited to 50 characters (not including Jira issue reference)
1. Subject does not end with a period
1. Subject uses the imperative mood ("add", not "adding")
1. Body wraps at 72 characters
1. Body explains "what" and "why", not "how"
- [ ] In case of new functionality, my PR adds documentation that describes how to use it.
- All the public functions and the classes in the PR contain Javadoc that explain what it does
-->
## What is the purpose of the change
*(For example: This pull request improves file read performance by buffering data, fixing AVRO-XXXX.)*
## Verifying this change
*(Please pick one of the following options)*
This change is a trivial rework / code cleanup without any test coverage.
*(or)*
This change is already covered by existing tests, such as *(please describe tests)*.
*(or)*
This change added tests and can be verified as follows:
*(example:)*
- *Extended interop tests to verify consistent valid schema names between SDKs*
- *Added test that validates that Java throws an AvroRuntimeException on invalid binary data*
- *Manually verified the change by building the website and checking the new redirect*
## Documentation
- Does this pull request introduce a new feature? (yes / no)
- If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
......@@ -90,4 +90,3 @@ updates:
schedule:
interval: "weekly"
day: "sunday"
open-pull-requests-limit: 20
......@@ -18,15 +18,39 @@
#
# Pull Request Labeler Github Action Configuration: https://github.com/marketplace/actions/labeler
C: ["lang/c/**/*"]
C++: ["lang/c++/**/*"]
C#: ["lang/csharp/**/*"]
Java: ["lang/java/**/*"]
Js: ["lang/js/**/*"]
Perl: ["lang/perl/**/*"]
Php: ["lang/php/**/*"]
Python: ["lang/py/**/*"]
Ruby: ["lang/ruby/**/*"]
Rust: ["lang/rust/**/*"]
build: ["**/*Dockerfile*", "**/*.sh", "**/*pom.xml", ".github/**/*"]
website: ["doc/**/*"]
C:
- changed-files:
- any-glob-to-any-file: "lang/c/**/*"
C++:
- changed-files:
- any-glob-to-any-file: "lang/c++/**/*"
C#:
- changed-files:
- any-glob-to-any-file: "lang/csharp/**/*"
Java:
- changed-files:
- any-glob-to-any-file: "lang/java/**/*"
Js:
- changed-files:
- any-glob-to-any-file: "lang/js/**/*"
Perl:
- changed-files:
- any-glob-to-any-file: "lang/perl/**/*"
Php:
- changed-files:
- any-glob-to-any-file: "lang/php/**/*"
Python:
- changed-files:
- any-glob-to-any-file: "lang/py/**/*"
Ruby:
- changed-files:
- any-glob-to-any-file: "lang/ruby/**/*"
Rust:
- changed-files:
- any-glob-to-any-file: "lang/rust/**/*"
build:
- changed-files:
- any-glob-to-any-file: ["**/*Dockerfile*", "**/*.sh", "**/*pom.xml", ".github/**/*"]
website:
- changed-files:
- any-glob-to-any-file: "doc/**/*"
......@@ -23,11 +23,11 @@ name: "CodeQL C#"
on:
push:
branches:
- master
- main
pull_request:
# The branches below must be a subset of the branches above
branches:
- master
- main
paths:
- .github/workflows/codeql-csharp-analysis.yml
- lang/csharp/**
......@@ -61,17 +61,18 @@ jobs:
# Install .NET SDKs
- name: Install .NET SDKs
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
3.1.x
5.0.x
6.0.x
7.0.x
8.0.x
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
......@@ -83,7 +84,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
uses: github/codeql-action/autobuild@v3
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
......@@ -93,4 +94,4 @@ jobs:
# uses a compiled language
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v3
......@@ -23,10 +23,10 @@ on:
workflow_dispatch:
push:
branches:
- master
- main
pull_request:
branches:
- master
- main
paths:
- .github/workflows/codeql-java-analysis.yml
- lang/java/**
......@@ -61,7 +61,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
......@@ -70,10 +70,25 @@ jobs:
# queries: ./path/to/local/query, your-org/your-repo/queries@main
queries: +security-and-quality
- name: 'Setup Temurin JDK 8, 11, 17 & 21'
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
with:
distribution: 'temurin'
java-version: |
8
11
17
21
- name: 'Setup Maven 3.9.6'
uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
with:
maven-version: 3.9.6
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# - name: Autobuild
# uses: github/codeql-action/autobuild@v3
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
......@@ -81,6 +96,8 @@ jobs:
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
- name: 'Java Test'
run: mvn clean test
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v3
......@@ -23,11 +23,11 @@ name: "CodeQL JavaScript"
on:
push:
branches:
- master
- main
pull_request:
# The branches below must be a subset of the branches above
branches:
- master
- main
paths:
- .github/workflows/codeql-js-analysis.yml
- lang/js/**
......@@ -61,7 +61,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
......@@ -73,7 +73,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
uses: github/codeql-action/autobuild@v3
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
......@@ -83,4 +83,4 @@ jobs:
# uses a compiled language
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v3
......@@ -23,11 +23,11 @@ name: "CodeQL Python"
on:
push:
branches:
- master
- main
pull_request:
# The branches below must be a subset of the branches above
branches:
- master
- main
paths:
- .github/workflows/codeql-py-analysis.yml
- lang/py/**
......@@ -61,7 +61,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
......@@ -73,7 +73,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
uses: github/codeql-action/autobuild@v3
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
......@@ -83,4 +83,4 @@ jobs:
# uses a compiled language
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v3
......@@ -19,7 +19,7 @@ name: "Publish Snapshot to Maven"
on:
workflow_dispatch:
push:
branches: [ master ]
branches: [ main ]
paths:
- .github/workflows/java-publish-snapshot.yml
- lang/java/**
......@@ -40,23 +40,32 @@ jobs:
- uses: actions/checkout@v4
- name: Cache Local Maven Repository
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Setup Java
uses: actions/setup-java@v3
- name: 'Setup Temurin JDK 8, 11, 17 & 21'
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
with:
distribution: 'adopt'
java-version: 8
distribution: 'temurin'
java-version: |
8
11
17
21
- name: Deploy Maven snapshots
- name: 'Setup Maven 3.9.6'
uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
with:
maven-version: 3.9.6
- name: 'Deploy Maven snapshots'
env:
ASF_USERNAME: ${{ secrets.NEXUS_USER }}
ASF_PASSWORD: ${{ secrets.NEXUS_PW }}
run: |
echo "<settings><servers><server><id>apache.snapshots.https</id><username>$ASF_USERNAME</username><password>$ASF_PASSWORD</password></server></servers></settings>" > settings.xml
mvn --settings settings.xml -U -B -e -fae -ntp -DskipTests deploy
mvn --settings settings.xml -U -B -e -fae -ntp -PskipQuality deploy
......@@ -23,7 +23,7 @@ jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v2
- uses: actions/labeler@v5
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
sync-labels: true
......@@ -17,9 +17,9 @@ name: 'Maven 4'
on:
workflow_dispatch:
push:
branches: [ master ]
branches: [ main ]
pull_request:
branches: [ master ]
branches: [ main ]
paths:
- .github/workflows/maven4.yml
- lang/java/**
......@@ -35,7 +35,7 @@ jobs:
- uses: actions/checkout@v4
- name: Cache Local Maven Repository
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
......@@ -43,23 +43,27 @@ jobs:
${{ runner.os }}-maven-
- name: Cache Maven 4 Build Cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/.m2/build-cache
key: ${{ runner.os }}-maven-build-cache-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-build-cache
- name: Setup Java
uses: actions/setup-java@v3
- name: 'Setup Temurin JDK 8, 11, 17 & 21'
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
with:
distribution: 'adopt'
java-version: '11'
distribution: 'temurin'
java-version: |
8
11
17
21
- name: Setup Maven 4
uses: stCarolas/setup-maven@v4.5
uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
with:
maven-version: 4.0.0-alpha-3
maven-version: 4.0.0-alpha-10
- name: Test
run: mvn clean package
run: mvn clean verify
......@@ -17,9 +17,9 @@ name: 'Rat'
on:
workflow_dispatch:
push:
branches: [ master ]
branches: [ main ]
pull_request:
branches: [ master ]
branches: [ main ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
......@@ -32,18 +32,27 @@ jobs:
- uses: actions/checkout@v4
- name: Cache Local Maven Repository
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Setup Java
uses: actions/setup-java@v2
- name: 'Setup Temurin JDK 8, 11, 17 & 21'
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
with:
distribution: 'adopt'
java-version: '11'
distribution: 'temurin'
java-version: |
8
11
17
21
- name: 'Setup Maven 3.9.6'
uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
with:
maven-version: 3.9.6
- name: Run Rat
run: mvn test -Dmaven.main.skip=true -Dmaven.test.skip=true -DskipTests=true -P rat -pl :avro-toplevel
run: mvn test -Dmaven.main.skip=true -Dmaven.test.skip=true -DskipTests=true -Dinvoker.skip=true -P rat -pl :avro-toplevel
......@@ -17,9 +17,9 @@ name: 'Spotless'
on:
workflow_dispatch:
push:
branches: [ master ]
branches: [ main ]
pull_request:
branches: [ master ]
branches: [ main ]
paths:
- .github/workflows/spotless.yml
- lang/java/**
......@@ -35,18 +35,27 @@ jobs:
- uses: actions/checkout@v4
- name: Cache Local Maven Repository
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Setup Java
uses: actions/setup-java@v2
- name: 'Setup Temurin JDK 8, 11, 17 & 21'
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
with:
distribution: 'adopt'
java-version: '11'
distribution: 'temurin'
java-version: |
8
11
17
21
- name: 'Setup Maven 3.9.6'
uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
with:
maven-version: 3.9.6
- name: Run Spotless Check
run: mvn spotless:check
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
......@@ -15,30 +13,26 @@
# See the License for the specific language governing permissions and
# limitations under the License.
set -e
name: 'Docker tests'
on:
workflow_dispatch:
push:
branches: [ main ]
pull_request:
branches: [ main ]
paths:
- 'share/docker/*'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
case "$TRAVIS_OS_NAME" in
"linux")
sudo apt-get -q update
sudo apt-get -q install --no-install-recommends -y curl git gnupg-agent locales pinentry-curses pkg-config rsync software-properties-common
sudo apt-get -q clean
sudo rm -rf /var/lib/apt/lists/*
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Only Yetus 0.9.0+ supports `ADD` and `COPY` commands in Dockerfile
curl -L https://www-us.apache.org/dist/yetus/0.10.0/apache-yetus-0.10.0-bin.tar.gz | tar xvz -C /tmp/
# A dirty workaround to disable the Yetus robot for TravisCI,
# since it'll cancel the changes that .travis/script.sh will do,
# even if the `--dirty-workspace` option is specified.
rm /tmp/apache-yetus-0.10.0/lib/precommit/robots.d/travisci.sh
;;
"windows")
# Install all (latest) SDKs which are used by multi framework projects
choco install dotnetcore-3.1-sdk # .NET Core 3.1
choco install dotnet-5.0-sdk # .NET 5.0
choco install dotnet-sdk # .NET 6.0
;;
*)
echo "Invalid PLATFORM"
exit 1
;;
esac
- name: Run Docker tests
shell: bash
run: ./build.sh docker-test
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: 'Test C++ on ARM'
on:
workflow_dispatch:
push:
branches: [ main ]
pull_request:
branches: [ main ]
paths:
- '.github/workflows/test-lang-c\+\+.yml'
- 'lang/c\+\+/**'
defaults:
run:
working-directory: lang/c++
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
arm64:
name: C++ on Linux ARM64
runs-on: ["self-hosted", "asf-arm"]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update -q
sudo apt-get install -q -y gcc g++ libboost-all-dev libfmt-dev cmake
- name: Build
run: |
set -x
./build.sh clean test
......@@ -17,9 +17,9 @@ name: Test C++
on:
workflow_dispatch:
push:
branches: [ master ]
branches: [ main ]
pull_request:
branches: [ master ]
branches: [ main ]
paths:
- '.github/workflows/test-lang-c\+\+.yml'
- 'lang/c\+\+/**'
......@@ -39,7 +39,13 @@ jobs:
- uses: actions/checkout@v4
- name: Install Dependencies
run: sudo apt-get install -qqy cppcheck libboost-all-dev libsnappy-dev cmake
run: sudo apt update && sudo apt-get install -qqy cppcheck libboost-all-dev libsnappy-dev libfmt-dev cmake
- name: Print Versions
run: |
gcc --version
cmake --version
cppcheck --version
- name: Clean
run: ./build.sh clean
......
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: 'Test C on ARM'
on:
workflow_dispatch:
push:
branches: [ main ]
pull_request:
branches: [ main ]
paths:
- .github/workflows/test-lang-c.yml
- lang/c/**
defaults:
run:
working-directory: lang/c
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
arm64:
name: C on Linux ARM64
runs-on: ["self-hosted", "asf-arm"]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update -q
sudo apt-get install -q -y cmake liblzma-dev libsnappy-dev libjansson-dev zlib1g-dev pkg-config
- name: Build
run: |
set -x
./build.sh clean test
......@@ -17,9 +17,9 @@ name: Test C
on:
workflow_dispatch:
push:
branches: [ master ]
branches: [ main ]
pull_request:
branches: [ master ]
branches: [ main ]
paths:
- .github/workflows/test-lang-c.yml
- lang/c/**
......@@ -47,17 +47,40 @@ jobs:
- name: Test
run: ./build.sh test
- name: Check pkg-config
run: |
mkdir -p build
cd build
cmake ..
export PKG_CONFIG_PATH=./src
pkg-config --libs avro-c
- name: Cache Local Maven Repository
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: 'Setup Temurin JDK 8, 11, 17 & 21'
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
with:
distribution: 'temurin'
java-version: |
8
11
17
21
- name: 'Setup Maven 3.9.6'
uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
with:
maven-version: 3.9.6
- name: Install Java Avro for Interop Test
working-directory: .
run: mvn -B install -DskipTests
run: mvn -B install -PskipQuality
- name: Create Interop Data Directory
working-directory: .
......@@ -87,16 +110,31 @@ jobs:
libzstd-dev
- name: Cache Local Maven Repository
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: 'Setup Temurin JDK 8, 11, 17 & 21'
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
with:
distribution: 'temurin'
java-version: |
8
11
17
21
- name: 'Setup Maven 3.9.6'
uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
with:
maven-version: 3.9.6
- name: Install Java Avro for Interop Test
working-directory: .
run: mvn -B install -DskipTests
run: mvn -B install -PskipQuality
- name: Create Interop Data Directory
working-directory: .
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment