Skip to content

Commit

Permalink
chore: update support for earlier versions in apt (twilio#400)
Browse files Browse the repository at this point in the history
  • Loading branch information
kridai committed Feb 23, 2022
1 parent d2be8e1 commit 09a6372
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 3 deletions.
16 changes: 16 additions & 0 deletions .github/scripts/pack-debian-apt.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,22 @@ PATH=$PATH:$PWD/bin eval $(PATH=$PATH:$PWD/bin node -p "require('./package').scr
await qq.x(`ln -s "../lib/${config.dirname}/bin/${config.bin}" "${workspace}/usr/bin/${pjson.oclif.bin}"`);
await qq.x(`dpkg --build "${workspace}" "${qq.join(dist, debArch(arch), `${versionedDebBase}.deb`)}"`);
}
try {
// fetch existing Packages file which needs to be modified for new version
await qq.x(`aws s3 cp s3://${pjson.oclif.update.s3.bucket}/apt/Packages Packages`, {cwd: dist, reject: false});
const content = readFileSync("Packages");
fs.readFile('Packages', function (err, data) {
if(err) throw err;
// check if version already exists
if(data.includes(`Version: ${debVersion}`)){
console.log('the version ${debVersion}` is already available');
return
}
});
}
catch(error) {
console.log(`Cannot retrieve Packages file due to error: ${error} `);
}
for (const a of arch) {
await build(a);
await qq.x(`apt-ftparchive packages ${debArch(a)}/ >> Packages`, {cwd: dist});
Expand Down
55 changes: 53 additions & 2 deletions .github/workflows/acceptance-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,50 @@ jobs:
if: failure() || cancelled()
id: failure_debian
run: echo '::set-output name=FAILURE_TAG_DEBIAN::true'
test-apt-release:
name: Wait for apt release to complete
runs-on: ubuntu-latest
needs: [ get-branch, get-tag ]
continue-on-error: true
outputs:
ACCEPTANCE_FAILURE_TAG: ${{ steps.apt.outputs.FAILURE_TAG_APT}}
steps:
- name: Checkout cli repo
uses: actions/checkout@v2
- name: Wait for apt Release
run: source .github/scripts/trigger-and-wait.sh
env:
INPUT_WORKFLOW_FILE_NAME: apt-release.yml
INPUT_REF: ${{ needs.get-branch.outputs.branch }}
- name: Perform acceptance install and test on apt package
id: apt_acceptance_run
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
wget -qO- https://twilio-cli-prod.s3.amazonaws.com/twilio_pub.asc | sudo apt-key add -
sudo touch /etc/apt/sources.list.d/twilio.list
echo 'deb https://twilio-cli-prod.s3.amazonaws.com/apt/ /' | sudo tee /etc/apt/sources.list.d/twilio.list
sudo apt update
sudo apt install -y twilio
ls
twilio --version
twilio api --help
.github/scripts/cmds-to-test.sh
- name: APT upgrade twilio package
run: |
sudo apt-get install --only-upgrade twilio
.github/scripts/cmds-to-test.sh
- name: APT downgrade twilio package
run: |
sudo apt-get install -y twilio=3.1.0-1
twilio --version
.github/scripts/cmds-to-test.sh
- name: setup apt failure output
if: failure() || cancelled()
id: failure_apt
run: echo '::set-output name=FAILURE_TAG_APT::true'
test-npm-releases:
name: NPM acceptance testing
runs-on: ubuntu-latest
Expand Down Expand Up @@ -262,7 +306,7 @@ jobs:
run: echo '::set-output name=FAILURE_TAG_SCOOP::true'

notify-complete-fail:
needs: [wait-for-brew-releases, wait-for-windows-releases, wait-for-debian-releases, wait-for-macos-releases, test-scoop-release, test-npm-releases]
needs: [wait-for-brew-releases, wait-for-windows-releases, wait-for-debian-releases, wait-for-macos-releases, test-scoop-release, test-npm-releases, test-apt-release]
name: Notify Release Failed
runs-on: ubuntu-latest
if: ${{ contains( needs.*.outputs.ACCEPTANCE_FAILURE_TAG, 'true' ) }}
Expand All @@ -278,6 +322,13 @@ jobs:
SLACK_TITLE: "Twilio Cli"
SLACK_MESSAGE: 'CLI acceptance workflow Failed'
- name: Fail in case all jobs failed
if: ${{ ( needs.test-npm-releases.outputs.ACCEPTANCE_FAILURE_TAG == 'true' ) && ( needs.wait-for-brew-releases.outputs.ACCEPTANCE_FAILURE_TAG == 'true' ) && ( needs.wait-for-macos-releases.outputs.ACCEPTANCE_FAILURE_TAG == 'true' ) && ( needs.wait-for-windows-releases.outputs.ACCEPTANCE_FAILURE_TAG == 'true' ) && ( needs.wait-for-debian-releases.outputs.ACCEPTANCE_FAILURE_TAG == 'true') && ( needs.test-scoop-release.outputs.ACCEPTANCE_FAILURE_TAG == 'true')}}
if: |
${{ ( needs.test-npm-releases.outputs.ACCEPTANCE_FAILURE_TAG == 'true' ) &&
( needs.wait-for-brew-releases.outputs.ACCEPTANCE_FAILURE_TAG == 'true' ) &&
( needs.wait-for-macos-releases.outputs.ACCEPTANCE_FAILURE_TAG == 'true' ) &&
( needs.wait-for-windows-releases.outputs.ACCEPTANCE_FAILURE_TAG == 'true' ) &&
( needs.wait-for-debian-releases.outputs.ACCEPTANCE_FAILURE_TAG == 'true') &&
( needs.test-scoop-release.outputs.ACCEPTANCE_FAILURE_TAG == 'true')}}
( needs.test-apt-release.outputs.ACCEPTANCE_FAILURE_TAG} == 'true')}}
run:
exit 1
2 changes: 1 addition & 1 deletion .github/workflows/apt-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: Check Out Repo
uses: actions/checkout@v2

- name: Configure AWS credentials from Test account
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
Expand Down

0 comments on commit 09a6372

Please sign in to comment.