diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..2c1abf2 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,71 @@ +name: Publish +on: + workflow_dispatch: + +jobs: + PublishToRepository: + runs-on: ubuntu-latest + environment: release + permissions: + id-token: write + contents: read + env: + CODEARTIFACT_REGION: "us-west-2" + CODEARTIFACT_DOMAIN: ${{ secrets.CODEARTIFACT_DOMAIN }} + CODEARTIFACT_ACCOUNT_ID: ${{ secrets.CODEARTIFACT_ACCOUNT_ID }} + CODEARTIFACT_REPOSITORY: ${{ secrets.CODEARTIFACT_REPOSITORY }} + CUSTOMER_REPOSITORY: ${{ secrets.CUSTOMER_REPOSITORY }} + steps: + - name: "Checkout" + uses: actions/checkout@v4 + with: + ref: release + fetch-depth: 0 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.9' + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v3 + with: + role-to-assume: ${{ secrets.AWS_CODEARTIFACT_ROLE }} + aws-region: us-west-2 + mask-aws-account-id: true + - name: Install dependencies + run: | + CODEARTIFACT_AUTH_TOKEN=$(aws codeartifact get-authorization-token --domain ${{ secrets.CODEARTIFACT_DOMAIN }} --domain-owner ${{ secrets.CODEARTIFACT_ACCOUNT_ID }} --query authorizationToken --output text --region us-west-2) + echo "::add-mask::$CODEARTIFACT_AUTH_TOKEN" + echo CODEARTIFACT_AUTH_TOKEN=$CODEARTIFACT_AUTH_TOKEN >> $GITHUB_ENV + pip install --upgrade hatch + pip install --upgrade twine + - name: Run Build + run: hatch build + - name: Publish to Repository + run: | + export TWINE_USERNAME=aws + export TWINE_PASSWORD=`aws codeartifact get-authorization-token --domain ${{ secrets.CODEARTIFACT_DOMAIN }} --domain-owner ${{ secrets.CODEARTIFACT_ACCOUNT_ID }} --query authorizationToken --output text` + export TWINE_REPOSITORY_URL=`aws codeartifact get-repository-endpoint --domain ${{ secrets.CODEARTIFACT_DOMAIN }} --domain-owner ${{ secrets.CODEARTIFACT_ACCOUNT_ID }} --repository ${{ secrets.CODEARTIFACT_REPOSITORY }} --format pypi --query repositoryEndpoint --output text` + twine upload dist/* + - name: Publish to Customer Repository + run: | + export TWINE_USERNAME=aws + export TWINE_PASSWORD=`aws codeartifact get-authorization-token --domain ${{ secrets.CODEARTIFACT_DOMAIN }} --domain-owner ${{ secrets.CODEARTIFACT_ACCOUNT_ID }} --query authorizationToken --output text` + export TWINE_REPOSITORY_URL=`aws codeartifact get-repository-endpoint --domain ${{ secrets.CODEARTIFACT_DOMAIN }} --domain-owner ${{ secrets.CODEARTIFACT_ACCOUNT_ID }} --repository ${{ secrets.CUSTOMER_REPOSITORY }} --format pypi --query repositoryEndpoint --output text` + twine upload dist/* + + PublishToService: + runs-on: ubuntu-latest + environment: release + permissions: + id-token: write + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v2 + with: + role-to-assume: ${{ secrets.AWS_CODEBUILD_RELEASE_PUBLISH_ROLE }} + aws-region: us-west-2 + - name: Run CodeBuild + uses: aws-actions/aws-codebuild-run-build@v1 + with: + project-name: openjd-adaptor-runtime-for-python-Publish + hide-cloudwatch-logs: true \ No newline at end of file diff --git a/.github/workflows/reuse_python_build.yml b/.github/workflows/reuse_python_build.yml index 30696d2..439df43 100644 --- a/.github/workflows/reuse_python_build.yml +++ b/.github/workflows/reuse_python_build.yml @@ -19,7 +19,7 @@ jobs: strategy: matrix: python-version: ['3.9', '3.10', '3.11'] - os: [ubuntu-latest, macOS-latest] + os: [ubuntu-latest] env: PYTHON: ${{ matrix.python-version }} CODEARTIFACT_REGION: "us-west-2" @@ -48,12 +48,14 @@ jobs: aws-region: us-west-2 mask-aws-account-id: true - - name: Install Hatch + - name: Setup CodeArtifact Linux run: | CODEARTIFACT_AUTH_TOKEN=$(aws codeartifact get-authorization-token --domain ${{ secrets.CODEARTIFACT_DOMAIN }} --domain-owner ${{ secrets.CODEARTIFACT_ACCOUNT_ID }} --query authorizationToken --output text --region us-west-2) echo "::add-mask::$CODEARTIFACT_AUTH_TOKEN" echo CODEARTIFACT_AUTH_TOKEN=$CODEARTIFACT_AUTH_TOKEN >> $GITHUB_ENV - pip install --upgrade -r requirements-development.txt + + - name: Install Dependencies + run: pip install --upgrade -r requirements-development.txt - name: Run Linting run: hatch run lint