Add explicit permissions to workflows after org-level read-only defau… #419
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Publish snapshots to maven | |
| on: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| build-and-publish-snapshots: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| id-token: write | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 11 | |
| uses: actions/setup-java@v3 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '11' | |
| cache: 'gradle' | |
| - name: 'Setup: Java 11 env' | |
| run: echo "JAVA11_HOME=$JAVA_HOME" >> $GITHUB_ENV | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v3 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| cache: 'gradle' | |
| - name: 'Setup: Java 17 env' | |
| run: echo "JAVA17_HOME=$JAVA_HOME" >> $GITHUB_ENV | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v3 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| cache: 'gradle' | |
| - name: 'Setup: Java 21 env' | |
| run: echo "JAVA21_HOME=$JAVA_HOME" >> $GITHUB_ENV | |
| - name: Read value from Properties-file | |
| id: read_property | |
| uses: christian-draeger/read-properties@1.1.1 | |
| with: | |
| path: 'buildSrc/opensearch-hadoop-version.properties' | |
| properties: 'opensearch_hadoop' | |
| - name: set required env variables | |
| run: | | |
| echo "MAVEN_HOME=maven" >> $GITHUB_ENV | |
| echo "MAVEN_HOME_CLIENT=maven/org/opensearch/client" >> $GITHUB_ENV | |
| echo "VERSION=${{ steps.read_property.outputs.opensearch_hadoop }}" >> $GITHUB_ENV | |
| - name: make snapshot directories | |
| run: | | |
| mkdir -p "${{ env.MAVEN_HOME_CLIENT }}" | |
| mkdir -p "${{ env.MAVEN_HOME_CLIENT }}/opensearch-hadoop/${{ env.VERSION }}-SNAPSHOT" | |
| mkdir -p "${{ env.MAVEN_HOME_CLIENT }}/opensearch-hadoop-mr/${{ env.VERSION }}-SNAPSHOT" | |
| mkdir -p "${{ env.MAVEN_HOME_CLIENT }}/opensearch-hadoop-hive/${{ env.VERSION }}-SNAPSHOT" | |
| mkdir -p "${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-30_2.12/${{ env.VERSION }}-SNAPSHOT" | |
| mkdir -p "${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-30_2.13/${{ env.VERSION }}-SNAPSHOT" | |
| mkdir -p "${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-35_2.12/${{ env.VERSION }}-SNAPSHOT" | |
| mkdir -p "${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-35_2.13/${{ env.VERSION }}-SNAPSHOT" | |
| mkdir -p "${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-40_2.13/${{ env.VERSION }}-SNAPSHOT" | |
| - name: Setup Gradle | |
| uses: gradle/gradle-build-action@v2 | |
| - name: generate JARs | |
| run: | | |
| ./gradlew clean -S -Dbuild.snapshot=true -Dorg.gradle.warning.mode=summary distribution --no-configuration-cache --info | |
| - name: generate sha and md5 | |
| run: | | |
| for i in `find . -path '*/distributions/*' -name "*.jar" -type f`; do sha1sum "$i" >> "$i.sha1"; done | |
| for i in `find . -path '*/poms/*' -name "*.pom" -type f`; do sha1sum "$i" >> "$i.sha1"; done | |
| for i in `find . -path '*/distributions/*' -name "*.jar" -type f`; do sha512sum "$i" >> "$i.sha512"; done | |
| for i in `find . -path '*/poms/*' -name "*.pom" -type f`; do sha512sum "$i" >> "$i.sha512"; done | |
| for i in `find . -path '*/distributions/*' -name "*.jar" -type f`; do sha256sum "$i" >> "$i.sha256"; done | |
| for i in `find . -path '*/poms/*' -name "*.pom" -type f`; do sha256sum "$i" >> "$i.sha256"; done | |
| for i in `find . -path '*/distributions/*' -name "*.jar" -type f`; do md5sum "$i" >> "$i.md5"; done | |
| for i in `find . -path '*/poms/*' -name "*.pom" -type f`; do md5sum "$i" >> "$i.md5"; done | |
| - name: copy JARs and POMs | |
| run: | | |
| rm -rf dist/build/distributions/*.zip | |
| cp -R mr/build/distributions/* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-hadoop-mr/${{ env.VERSION }}-SNAPSHOT | |
| cp -R mr/build/poms/* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-hadoop-mr/${{ env.VERSION }}-SNAPSHOT | |
| cp -R hive/build/distributions/* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-hadoop-hive/${{ env.VERSION }}-SNAPSHOT | |
| cp -R hive/build/poms/* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-hadoop-hive/${{ env.VERSION }}-SNAPSHOT | |
| cp -R dist/build/distributions/* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-hadoop/${{ env.VERSION }}-SNAPSHOT | |
| cp -R dist/build/poms/* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-hadoop/${{ env.VERSION }}-SNAPSHOT | |
| cp -R spark/sql-30/build/distributions/opensearch-spark-30_2.12* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-30_2.12/${{ env.VERSION }}-SNAPSHOT | |
| cp -R spark/sql-30/build/poms/opensearch-spark-30_2.12* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-30_2.12/${{ env.VERSION }}-SNAPSHOT | |
| cp -R spark/sql-30/build/distributions/opensearch-spark-30_2.13* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-30_2.13/${{ env.VERSION }}-SNAPSHOT | |
| cp -R spark/sql-30/build/poms/opensearch-spark-30_2.13* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-30_2.13/${{ env.VERSION }}-SNAPSHOT | |
| cp -R spark/sql-35/build/distributions/opensearch-spark-35_2.12* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-35_2.12/${{ env.VERSION }}-SNAPSHOT | |
| cp -R spark/sql-35/build/poms/opensearch-spark-35_2.12* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-35_2.12/${{ env.VERSION }}-SNAPSHOT | |
| cp -R spark/sql-35/build/distributions/opensearch-spark-35_2.13* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-35_2.13/${{ env.VERSION }}-SNAPSHOT | |
| cp -R spark/sql-35/build/poms/opensearch-spark-35_2.13* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-35_2.13/${{ env.VERSION }}-SNAPSHOT | |
| cp -R spark/sql-40/build/distributions/opensearch-spark-40_2.13* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-40_2.13/${{ env.VERSION }}-SNAPSHOT | |
| cp -R spark/sql-40/build/poms/opensearch-spark-40_2.13* ${{ env.MAVEN_HOME_CLIENT }}/opensearch-spark-40_2.13/${{ env.VERSION }}-SNAPSHOT | |
| - name: debug output directories | |
| run: tree maven | |
| - uses: actions/checkout@v4 | |
| with: | |
| repository: 'opensearch-project/opensearch-build' | |
| path: 'build' | |
| ref: 'main' | |
| - name: Load secret | |
| uses: 1password/load-secrets-action@v2 | |
| with: | |
| # Export loaded secrets as environment variables | |
| export-env: true | |
| env: | |
| OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} | |
| MAVEN_SNAPSHOTS_S3_REPO: op://opensearch-infra-secrets/maven-snapshots-s3/repo | |
| MAVEN_SNAPSHOTS_S3_ROLE: op://opensearch-infra-secrets/maven-snapshots-s3/role | |
| - name: Export SNAPSHOT_REPO_URL | |
| run: | | |
| snapshot_repo_url=${{ env.MAVEN_SNAPSHOTS_S3_REPO }} | |
| echo "SNAPSHOT_REPO_URL=$snapshot_repo_url" >> $GITHUB_ENV | |
| - name: Configure AWS credentials | |
| uses: aws-actions/configure-aws-credentials@v5 | |
| with: | |
| role-to-assume: ${{ env.MAVEN_SNAPSHOTS_S3_ROLE }} | |
| aws-region: us-east-1 | |
| - name: Get credentials and publish snapshots to maven | |
| run: | | |
| build/publish/publish-snapshot.sh $MAVEN_HOME | |