W获取 Github 操作

问题描述 投票:0回答:1

我正在尝试在 GitHub Action 中安装 Flyway CLI,但是,安装后我无法找到该包。

我的期望是文件夹

flyway-9.21.1
位于我的当前目录中,然后我可以用它来做flyway的事情。

如果我在安装后在当前目录上执行

ls
,则该文件夹不存在。

>Run ls ./
README.md
flyway.toml
migrations

这会导致以下错误:

flyway-9.21.1/flyway:没有这样的文件或目录

我一直在使用 ACT 工具在本地运行该操作,并且该文件夹存在。


[Development deploy/Re-build] ⭐ Run Main LS
[Development deploy/Re-build]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/4] user= workdir=
| README.md  flyway-9.21.1  flyway.toml  migrations

我还尝试通过以下方式引用该工具:

  • flyway-9.21.1/flyway
  • ./flyway-9.21.1/flyway
  • 飞行路线

基于这个示例,看来我所做的应该是有效的。我想避免使用任何其他工具,即 Docker 或第三方其他操作。

如有任何帮助,我们将不胜感激。

完整动作:

name: "Development deploy"

on:
  push:
    branches:
      - development

env:
  SQLFLUFF_DIALECT: postgres
  DOCKER_IMAGE: redgate/flyway
  SCHEMAS: etslips

jobs:
  Re-build:
    name: Re-build
    runs-on: ubuntu-latest

    steps:
      - name: Set up Java
        uses: actions/setup-java@v2
        with:
          java-version: "11"
          distribution: "temurin"

      - name: Download and Install Flyway CLI
        run: wget -qO- https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/9.21.1/flyway-commandline-9.21.1-linux-x64.tar.gz | tar -xvz && ln -s `pwd`/flyway-9.21.1/flyway /usr/local/bin

      - name: Set Flyway Path
        run: PATH=/flyway:$PATH

      - name: Checkout
        uses: actions/[email protected]
      
      - name: LS
        run: ls ./

      - name: Clean
        run: flyway-9.21.1/flyway clean -url="${{ secrets.DB_BUILD_URL }}" -user="${{ secrets.DB_BUILD_USERNAME}}" -password="${{ secrets.DB_BUILD_PASSWORD}}" -schemas="${{ env.SCHEMAS }}" -cleanDisabled=false

      - name: Migrate
        run: flyway migrate -url="${{ secrets.DB_BUILD_URL }}" -user="${{ secrets.DB_BUILD_USERNAME}}" -password="${{ secrets.DB_BUILD_PASSWORD}}" -schemas="${{ env.SCHEMAS }}" -outOfOrder=false

      - name: Info
        run: flyway info -url="${{ secrets.DB_BUILD_URL }}" -user="${{ secrets.DB_BUILD_USERNAME}}" -password="${{ secrets.DB_BUILD_PASSWORD}}" -schemas="${{ env.SCHEMAS }}" -outOfOrder=false

  Development-deploy:
    name: Development deployment
    needs: Re-build
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/[email protected]

      - name: Info
        run: flyway info -url="${{ secrets.DB_DEV_URL }}" -user="${{ secrets.DB_DEV_USERNAME}}" -password="${{ secrets.DB_DEV_PASSWORD}}" -schemas="${{ env.SCHEMAS }}" -outOfOrder=false

      - name: Migrate
        run: flyway migrate -url="${{ secrets.DB_DEV_URL }}" -user="${{ secrets.DB_DEV_USERNAME}}" -password="${{ secrets.DB_DEV_PASSWORD}}" -schemas="${{ env.SCHEMAS }}" -outOfOrder=false

      - name: Info
        run: flyway info -url="${{ secrets.DB_DEV_URL }}" -user="${{ secrets.DB_DEV_USERNAME}}" -password="${{ secrets.DB_DEV_PASSWORD}}" -schemas="${{ env.SCHEMAS }}" -outOfOrder=false


github-actions flyway
1个回答
0
投票

如果我将

ls
步骤移至
check out
步骤上方,您可以看到目录中存在该工具。

Run ls ./
flyway-9.21.1

我只能假设

check out
步骤覆盖了目录,从而删除了该工具。将
checkout
步骤移至操作中的第一个步骤解决了该问题。

      - name: Checkout # Moved to the top
        uses: actions/[email protected]

      - name: Set up Java
        uses: actions/setup-java@v2
        with:
          java-version: "11"
          distribution: "temurin"

      - name: Download and Install Flyway CLI
        run: wget -qO- https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/9.21.1/flyway-commandline-9.21.1-linux-x64.tar.gz | tar -xvz && ln -s `pwd`/flyway-9.21.1/flyway /usr/local/bin

      # Moved from here

      - name: Clean
        run: flyway clean -url="${{ secrets.DB_BUILD_URL }}" -user="${{ secrets.DB_BUILD_USERNAME}}" -password="${{ secrets.DB_BUILD_PASSWORD}}" -schemas="${{ env.SCHEMAS }}" -cleanDisabled=false

etc...
© www.soinside.com 2019 - 2024. All rights reserved.