diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000000..b700d5375f --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,52 @@ +name: Build toolchain + +on: + workflow_call: + inputs: + nightly: + required: false + type: boolean + default: false + +jobs: + run: + runs-on: ubuntu-latest + steps: + - name: Set up Java JDK + uses: actions/setup-java@v2 + with: + java-version: 11 + distribution: zulu + - name: Set up Maven + uses: stCarolas/setup-maven@v4 + with: + maven-version: 3.8.1 + - name: Cache local Maven repository + uses: actions/cache@v2 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Check out lingua-franca repository + uses: actions/checkout@v2 + with: + submodules: recursive + - name: Validate Gradle wrapper + uses: gradle/wrapper-validation-action@v1 + - name: Build and package lfc + run: .github/scripts/package_lfc.sh + - name: Build and package epoch + run: mvn package + + - name: Deploy nightly release + uses: marvinpinto/action-automatic-releases@latest + with: + repo_token: "${{ secrets.NIGHTLY_BUILD }}" + automatic_release_tag: 'nightly' + prerelease: true + files: | + org.lflang.rca/target/products/*.tar.gz + org.lflang.rca/target/products/*.zip + build_upload/* + if: ${{ inputs.nightly == true }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 79defce117..41521ed6b0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,6 +16,10 @@ env: vcpkgGitRef: 0bf3923f9fab4001c00f0f429682a0853b5749e0 jobs: + # Test the Maven build. + build: + uses: lf-lang/lingua-franca/.github/workflows/build.yml@ci + # Run the unit tests. unit-tests: uses: lf-lang/lingua-franca/.github/workflows/unit-tests.yml@master diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index 2cd24cd362..a979c230b5 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -1,60 +1,13 @@ name: Nightly build -# Trigger the workflow every day at 5 AM (UTC) i.e., 10 PM Pacific. +# Trigger the workflow every day at 5 AM (UTC). on: schedule: - cron: '0 5 * * *' workflow_dispatch: jobs: - package: - strategy: - matrix: - platform: [ubuntu-latest] - runs-on: ${{ matrix.platform }} - steps: - # Setup Build dependencies - - name: Set up Java JDK - uses: actions/setup-java@v2 - with: - java-version: 11 - distribution: zulu - - name: Set up Maven - uses: stCarolas/setup-maven@v4 - with: - maven-version: 3.8.1 - - - name: Cache local Maven repository - uses: actions/cache@v2 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - - # Check out the repository under $GITHUB_WORKSPACE, so the job can access it - - uses: actions/checkout@v2 - with: - submodules: recursive - - - name: Gradle Wrapper Validation - uses: gradle/wrapper-validation-action@v1 - - # Build products - - name: Build the lfc compiler - run: .github/scripts/package_lfc.sh - - name: Build Eclipse product - run: mvn compile - - name: Package IDE - run: mvn package - - - name: Deploy release - uses: marvinpinto/action-automatic-releases@latest - with: - repo_token: "${{ secrets.NIGHTLY_BUILD }}" - automatic_release_tag: 'nightly' - prerelease: true - files: | - org.lflang.rca/target/products/*.tar.gz - org.lflang.rca/target/products/*.zip - build_upload/* + build: + uses: lf-lang/lingua-franca/.github/workflows/build.yml@master + with: + nightly: true diff --git a/RELEASES.md b/RELEASES.md index a892af9b00..8f5b35594b 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -6,6 +6,9 @@ ## Libraries +## Dependencies + - Kotlin `1.4.10` -> `1.6.10` (#866) + # Version 0.1.0-alpha (06-04-2021) This is a preliminary release of the Lingua Franca Compiler (`lfc`), a **command-line compiler** that translates Lingua Franca programs into target language programs, and an **Eclipse-based IDE** (integrated development environment) that provides a sophisticated editor as well as a code generator. This release supports four target languages: C, C++, Python, and Typescript. See [documentation](https://github.com/icyphy/lingua-franca/wiki). Of the four target languages, C is the most complete. It supports all documented language features including an experimental implementation of [federated execution](https://github.com/icyphy/lingua-franca/wiki/Distributed-Execution). diff --git a/build.gradle b/build.gradle index 107ed3ccaa..729f822e3c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlinVersion = "1.4.10" // sync with pom.xml + ext.kotlinVersion = "1.6.10" // sync with pom.xml repositories { mavenCentral() } diff --git a/pom.xml b/pom.xml index 339a9abef2..25da882ab1 100644 --- a/pom.xml +++ b/pom.xml @@ -53,8 +53,7 @@ - - 1.4.10 + 1.6.10 11 11 2.3.0