| # 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 |
| # |
| # http://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: Release Candidate |
| |
| # We build release candidates using GitHub actions when a rc* tag is pushed. |
| # Once the vote passes for a release candidate we promote that candidate to the |
| # final release--we do not do a new build for final release tags. When |
| # triggered via workflow_dispatch the release candidate action disables |
| # publishing regardless of the publish setting--it should be used for testing only |
| on: |
| push: |
| tags: |
| - 'v*-rc*' |
| workflow_dispatch: |
| |
| jobs: |
| |
| release-candidate: |
| name: Release Candidate ${{ github.ref_name }} |
| runs-on: ubuntu-22.04 |
| |
| env: |
| AR: llvm-ar-14 |
| CC: clang |
| LANG: en_US.UTF-8 |
| |
| steps: |
| |
| - name: Checkout Repository |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 |
| |
| - name: ASF Release Candidate |
| id: rc |
| uses: apache/daffodil-infrastructure/actions/release-candidate@main |
| with: |
| tlp_dir: 'daffodil' |
| project_name: 'Apache Daffodil' |
| project_id: 'daffodil' |
| gpg_signing_key: ${{ secrets.DAFFODIL_GPG_SECRET_KEY }} |
| svn_username: ${{ secrets.DAFFODIL_SVN_DEV_USERNAME }} |
| svn_password: ${{ secrets.DAFFODIL_SVN_DEV_PASSWORD }} |
| nexus_username: ${{ secrets.NEXUS_STAGE_DEPLOYER_USER }} |
| nexus_password: ${{ secrets.NEXUS_STAGE_DEPLOYER_PW }} |
| publish: true |
| |
| - name: Install Dependencies |
| run: | |
| sudo dpkg --add-architecture i386 |
| sudo apt-get update |
| sudo apt-get install -y libmxml-dev rpm wine32 winetricks |
| sudo locale-gen $LANG |
| |
| INNO_SETUP_EXE="innosetup-6.4.1.exe" |
| EXPECTED_SHA=5dfc9999e2feafa28754baaf80cf73ac96414228b94a1132a919554a822c892810197305d9355885b9ac408c214691cd45279fc2df3a891fbebc4f8eb86bac87 |
| curl -L https://files.jrsoftware.org/is/6/$INNO_SETUP_EXE -o $INNO_SETUP_EXE |
| echo "$EXPECTED_SHA $INNO_SETUP_EXE" | sha512sum --quiet -c - |
| winetricks -q win10 |
| xvfb-run wine $INNO_SETUP_EXE /VERYSILENT /SUPPRESSMSGBOXES /TASKS= '/DIR=C:\\Program Files (x86)\\Inno Setup 6' |
| rm $INNO_SETUP_EXE |
| |
| - name: Setup Java |
| uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 |
| with: |
| distribution: temurin |
| java-version: 17 |
| cache: sbt |
| |
| # Publish jars to a staging maven repository and write helper binary |
| # artifacts to the artifact directory |
| # |
| # Note that if we are not actually publishing (the publish setting is |
| # false, this is a snapshot, etc.) then the release candidate action will |
| # have configured the system so publishSigned just goes to a local maven |
| # repository so nothing is published externally |
| - name: Create Binary Artifacts |
| run: | |
| sbt \ |
| +compile \ |
| +publishSigned \ |
| daffodil-cli/Rpm/packageBin \ |
| daffodil-cli/Universal/packageBin \ |
| daffodil-cli/Universal/packageZipTarball \ |
| daffodil-cli/packageWindowsBin |
| |
| ARTIFACT_BIN_DIR=${{ steps.rc.outputs.artifact_dir }}/bin |
| mkdir -p $ARTIFACT_BIN_DIR |
| cp daffodil-cli/target/universal/apache-daffodil-*.tgz $ARTIFACT_BIN_DIR/ |
| cp daffodil-cli/target/universal/apache-daffodil-*.zip $ARTIFACT_BIN_DIR/ |
| cp daffodil-cli/target/rpm/RPMS/noarch/apache-daffodil-*.rpm $ARTIFACT_BIN_DIR/ |
| cp daffodil-cli/target/windows/apache-daffodil-*.exe $ARTIFACT_BIN_DIR/ |
| chmod -x $ARTIFACT_BIN_DIR/*.exe |